создайте файл в каждом подкаталоге и запишите в него его путь

Я изучаю Linux и нашел интересное упражнение. Создайте несколько каталогов в ~ (abc, abc/def, abc/xyz, abc/def/ghi/123, abc/def/ghi/456), что является легкой задачей. После этого создайте файл с именем 1.txt в abc и каждой из его подкаталогов, записав путь к файлам к ним (например, ~/abc/def/1.txt должен содержать свой путь внутри себя).

Я использовал find /home/alex/abc -exec touch {}/1.txt \;, который пытался создать home/alex/DIRECTORY/1.txt/1.txt для каждой из подкаталогов, хотя, надеюсь, создавал нужные мне файлы 1.txt, но это по-прежнему некорректное поведение и, следовательно, не очень хорошее.

Большая проблема заключается в записи пути к файлу для каждого из них 1.txt. Я могу использовать find /home/alex/abc -name 1.txt, чтобы найти каждый из них, но я не знаю, как записать каждую отдельную строку в каждый отдельный файл. Я пытался сделать это с -exec и xargs, но ничего не сработало.

Итак, как я могу это сделать?

0
задан 1 October 2017 в 20:17

1 ответ

Если Вы уже сделали каталоги, то сделайте:

find ~/abc -type d -exec sh -c 'echo "$1"/1.txt > "$1"/1.txt' _ {} \;

Это работает sh -c 'echo "$1"/1.txt > "$1"/1.txt' за каждым каталогом (и только каталогами, из-за -type d), с _ и путь к каталогу как аргументы. Затем echo "$1"/1.txt > "$1"/1.txt выводы путь + 1.txt в файл назвал то же. Это также создаст файлы по мере необходимости.

2
ответ дан 2 October 2017 в 06:17

Другие вопросы по тегам:

Похожие вопросы: