BASH создать папку переадресации
Как я могу получить следующую команду
echo "something" > "$f"
где $f
будет что-то вроде folder/file.txt
создать папку folder
, если не существует?
Если я не могу этого сделать, как я могу script дублировать все папки (без содержимого) в каталоге 'a' в каталог 'b'?
например, если у меня есть
а/f1/
а /f 2/
а/f3/
Я хочу иметь
б/f1/
б /f 2/
б/f3/
Ответы
Ответ 1
В других ответах здесь используется внешняя команда "dirname". Это можно сделать без вызова внешней утилиты.
mkdir -p "${f%/*}"
Вы также можете проверить, существует ли каталог, но этого не требуется с помощью mkdir -p:
mydir="${f%/*}"
[[ -d $mydir ]] || mkdir -p "$mydir"
Ответ 2
попробовать
mkdir -p `dirname $f` && echo "something" > $f
Ответ 3
Вы можете использовать mkdir -p
для создания папки перед записью в файл:
mkdir -p "$(dirname $f)"
Ответ 4
echo "something" | install -D /dev/stdin $f