수천 개의 파일 목록과 해당 디렉터리 경로를 반복적으로 생성해야 합니다.
다음은 매니페스트 출력이 필요한 방법에 대한 예입니다.
This_is_an_example/of_how/i_want_to_display/absolute_paths/
examplefiles.md5
examplefiles.txt
examplefile.wav
This_is_an_example/of_how/i_want_to_display/absolute_paths/part_2/
examplefiles.md5
examplefiles.txt
examplefile.wav
이 명령을 사용 tree -fai > manifest.txt
하면 필요한 것에 가까워지지만 절대 경로 뒤에 개행 문자가 생성되지는 않습니다.
둘째, 하위 디렉터리의 순차 파일을 1줄의 입력으로 출력하고 싶습니다.
This_is_an_example/of_how/i_want_to_display/absolute_paths/part_3/
test_file_here_0000001.dpx
test_file_here_0000002.dpx
test_file_here_0000003.dpx
test_file_here_0000004.dpx
다음과 같이 표시됩니다
This_is_an_example/of_how/i_want_to_display/absolute_paths/part_4/
test_file_here_[0000000-0000004].dpx
답변1
에서 man
:
-R, --recursive list subdirectories recursively
노력하다,
ls -R /path/to/dir
좀 더 가까이,
ll -R /path/to/dir | awk '$1!="total"{print $NF}'
답변2
find . -print | perl -pe 'a=$_; chomp $a; -d $a or s:.*/::'
답변3
디렉토리를 찾고 그 내용을 나열하고 싶으므로 find
다음을 사용하는 것이 좋습니다.
find /path/to/dir -type d -exec bash -O dotglob -O nullglob -c '
for pathname do
header=0
for filename in "$pathname"/*; do
if [ ! -d "$filename" ]; then
if [ "$header" -eq 0 ]; then
printf "%s/\n" "${pathname%/}"
header=1
fi
printf "%s\n" "${filename##*/}"
fi
done
[ "$header" -eq 1 ] && printf "\n"
done' bash {} +
그러면 주어진 디렉토리 경로 안이나 아래에 있는 모든 디렉토리를 찾습니다. 이는 이러한 모든 디렉터리의 경로 이름을 bash
스크립트에 제공합니다.
스크립트 bash
는 각 디렉터리를 반복하여 디렉터리 경로 이름을 헤더로 인쇄하고 해당 디렉터리에 있는 디렉터리가 아닌 항목을 나열합니다. 마지막으로 디렉터리에 디렉터리가 아닌 파일이 하나 이상 있으면 추가 줄 바꿈이 출력됩니다.
빈 디렉터리나 디렉터리만 포함된 디렉터리는 나열되지 않습니다.
다음과 같은 디렉토리 구조의 경우
/dir
`-- a
|-- b
| `-- c
| |-- .hidden_file
| `-- file
`-- file
그러면 다음과 같은 출력이 생성됩니다.
/dir/a/
file
/dir/a/b/c/
.hidden_file
file