Создайте файл в каждом подкаталоге и запишите в него его путь
Я изучаю 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
но ничего не сработало.
Итак, как я могу это сделать?
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
в файл с именем того же. Это также создаст файлы по мере необходимости.