Команда оболочки для создания текстового файла во всех подкаталогах - PullRequest
0 голосов
/ 14 июля 2020

Привет всем, есть ли какая-нибудь linux команда для создания пользовательского текстового файла в текущем каталоге и его подкаталогах

Например, я хотел бы повернуть это дерево каталогов:

.
├── 1
│   ├── A
│   └── B
├── 2
│   └── A
└── 3
    ├── A
    └── B
        └── I   
9 directories, 0 files

в этот

.
├── 1
│   ├── A
│   │   └── downloadedFrom.txt
│   ├── B
│   │   └── downloadedFrom.txt
│   └── downloadedFrom.txt
├── 2
│   ├── A
│   │   └── downloadedFrom.txt
│   └── downloadedFrom.txt
├── 3
│   ├── A
│   │   └── downloadedFrom.txt
│   ├── B
│   │   ├── downloadedFrom.txt
│   │   └── I
│   │       └── downloadedFrom.txt
│   └── downloadedFrom.txt
└── downloadedFrom.txt

9 directories, 10 files

я хочу создать txt файл во всех каталогах (содержимое txt файла: имя моего веб-сайта) есть ли способ? или есть ли способ перезаписать содержимое файлов в подкаталогах

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Использование только одной команды find:

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

или, альтернативно, использование голого bash с опцией globstar (начиная с bash 4):

shopt -s globstar
for dir in . **/; do echo "yourwebsite" > "$dir/downloadedFrom.txt"; done
1 голос
/ 14 июля 2020
for dir in `find . -type d` ; do echo "mywebsite.com" > $dir/downloadedfrom.txt ; done

Это то, что вы ищете, вроде как? Команда find выполняет итерацию по всем элементам типа каталога в текущем каталоге, а затем мы выводим содержимое файла в новый файл во всех этих каталогах. Однако это приведет к перезаписи того, что уже находится в этих каталогах, так что будьте осторожны!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...