2013-03-18 4 views
0

상위 디렉토리와 하위 디렉토리에있는 모든 파일을 나열하려고합니다. 그러나 다른 위치에서이 명령을 실행하고 있습니다. 그래서, 처음에는 디렉터리로 이동해야합니다 (이 명령을 실행하려는 위치부터).Linux의 상위 디렉토리에있는 파일을 재귀 적으로 검색

앞에있는 각 파일의 절대 경로를 나열하기 때문에 ls 대신 find 명령을 사용합니다. 이것은 ls 명령으로는 불가능합니다.

cd ../../../;cd level1_dir1;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n" 

이 명령은 모든 출력을 표시하지 않습니다 여기

내가 뭐하는 거지입니다.

level1_dir1 

이 가지고 여러 하위 디렉토리 :

level2_dir1 
level2_dir2 

.... 

level2_dir10 

이 서브 디렉토리의 각 다시 내부 하위 디렉토리와 파일이 여기에

는 디렉토리 구조입니다.

그러나 내가 지금하는 경우 : 같은

cd ../../../;cd level1_dir1/level2_dir1;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n" 

그것이 level2_dir1의 모든 하위 디렉토리에 대해 제대로 재귀를하고 표시합니다 출력 :

date level1_dir1/level2_dir1/path/to/file/filename 

그래서, 나는 밖으로 인쇄하고 싶었다 모든 레벨 2 디렉토리 (야생 문자를 사용하여) :

cd ../../../;cd level1_dir1/*;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n" 

level2 (즉 level2_dir1)의 첫 번째 디렉토리에 대한 결과 만 출력하십시오.

어떻게 모든 하위 디렉토리의 파일 목록을 만들 수 있습니까?

감사합니다.

+0

'find. - 이름 '*''? 또는 find ../../../ -name '*' ' – Bart

+0

나는 처음부터 모든 파일을 재귀 적으로 검색 할 상위 디렉토리로 이동하기 위해 디렉토리를 변경하고있다. –

+0

'cd '할 필요가 없습니다. 'find '가 그것을 처리 할 수 ​​있습니다. 내 이전 댓글을 참조하십시오. – Bart

답변

0

어때?

find ../../../level1_dir1 -printf "%TY-%Tm-%Td\t%p\n" 

모든 파일을 원하면 find 명령에 -name이 필요하지 않습니다. 디렉토리와 파일 만보고 싶지 않으면 -printf 앞에 "-type f"를 추가하십시오.

희망 하시겠습니까?

관련 문제