Bash: Создание чтения подкаталогов из файла
У меня есть файл, содержащий некоторые ключевые слова, и я намерен создать подкаталоги в том же каталоге того же ключевого слова, используя скрипт bash. Вот код, который я использую, но он не работает. Я не знаю, где я ошибся. Помоги мне
for i in `cat file.txt`
do
# if [[ ! -e $path/$i ]]; then
echo "creating" $i "directory"
mkdir $path/$i
# fi
grep $i file >> $path/$i/output.txt
done
echo "created the files in "$path/$TEMP/output.txt
2 ответа
78mkdir
откажется создавать каталог, если его части не существует. например, если нет /foo/bar
каталог, то mkdir /foo/bar/baz
не удастся.
Вы можете немного расслабиться, используя -p
флаг, который при необходимости создаст родительские каталоги (в примере это может создать /foo
а также /foo/bar
).
Вы также должны использовать кавычки, если ваши пути содержат пробелы.
mkdir -p "${path}/${i}"
наконец, убедитесь, что вам действительно разрешено создавать каталоги в $path