Сценарий оболочки использует команду find, чтобы сначала получить список файлов в порядке файлов каталога, а затем подкаталог и т. Д. - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь получить список файлов в каталоге и подкаталогах по порядку. как описано ниже.

#!/bin/sh
find /home/ -type f -name "*.txt" | sort -n

В моем скрипте я получаю вывод, например:

/home/1_txt.txt 
/home/1_home/1_txt.txt 
/home/2-txt.txt 
/home/2_home/1_txt.txt 

, но мне нужен вывод, например

/home/1_txt.txt 
/home/2-txt.txt 
/home/1_home/1_txt.txt 
/home/2_home/1_txt.txt 

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Я нашел решение, используя для l oop, и нашел. это дает мне l oop через каждый дочерний каталог.

for directory in $(find "$v_parentdirectory"  -type d | sort -n);
do
    find "$directory" -maxdepth 1 -type f -name "*.txt" | sort -n 

done
0 голосов
/ 26 мая 2020

вы хотите отсортировать их по этим путям, один из способов - использовать для l oop

dir = / home (или любой каталог, в котором нужно искать файлы "* .txt")

в l oop вместо 10 используйте maxdepth относительно $ dir (например: если вы хотите искать только в каталоге $ dir и его дочерних каталогах (исключительно), используйте 2, поэтому для l oop потому что для i в {1..2}) в противном случае используйте руководство по команде find

для i в {1..10}; do / usr / bin / find $ dir -mindepth $ i -maxdepth $ i -type f -name "* .txt"; сделано

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