중첩 된 디렉토리에있는 특정 유형의 파일, 즉 doc pdf 파일을 어떻게 찾을 수 있습니까?쉘의 재귀 디렉토리에 특정 유형의 파일을 나열하는 방법은 무엇입니까?
$ ls -R | grep .doc
을하지만 alok.doc.txt
같은 파일 이름이있는 경우이 명령은 내가 원하는 분명하지 않은 그것도가 표시됩니다
명령은 내가 시도했다. 대신에 어떤 명령을 사용해야합니까?
중첩 된 디렉토리에있는 특정 유형의 파일, 즉 doc pdf 파일을 어떻게 찾을 수 있습니까?쉘의 재귀 디렉토리에 특정 유형의 파일을 나열하는 방법은 무엇입니까?
$ ls -R | grep .doc
을하지만 alok.doc.txt
같은 파일 이름이있는 경우이 명령은 내가 원하는 분명하지 않은 그것도가 표시됩니다
명령은 내가 시도했다. 대신에 어떤 명령을 사용해야합니까?
이 마치
find /path -type f \(-iname "*.doc" -o -iname "*.pdf" \)
: 자동 처리를위한 고급 쿼리의 경우, 더 강력한 find
명령을 사용한다 grep 명령에서 정규 표현식을 사용하여 원하는 작업을 수행 할 수 있습니다 (끝 '$'문자는 .doc가 줄의 끝에 있어야 함을 나타내며 'file.doc.txt'는 제외됩니다).
ls -R |grep "\.doc$"
the man에 정규 표현식과 함께 grep을 사용하는 방법에 대한 추가 정보.
ls
명령 출력은 주로 사람이 읽기위한 것입니다. 당신은 "LS"와 "그렙"더 편하지 않으면 당신은 bash는 4.0 ++
#!/bin/bash
shopt -s globstar
shopt -s nullglob
for file in **/*.{pdf,doc}
do
echo "$file"
done
** **/* .pdf **/*. doc - 서브 디렉토리없이 서브 디렉토리로 재귀하지 않습니다. – Petesh
실제로 더블 아스테릭스 – ghostdog74
'ls **/*. {pdf, doc}'할 수 있습니다. 또는'**/*. {pdf, doc} '의 파일에 대해서' –
사용할 수있는 다른 방법의 일부 :
echo *.{pdf,docx,jpeg}
stat -c %n * | grep 'pdf\|docx\|jpeg'
당신이 (꽤 정규식 제안 등) 와일드 카드 문자 *
를 사용하여 선호 유사하게 경우 그냥 ls
을 사용할 수 있습니다 -l
플래그를 사용하면 한 줄당 한 파일 (예 : grep)을 나열하고 -R
플래그를 표시 할 수 있습니다. 그런 다음 검색 할 파일을 *.doc
I.E.로 지정할 수 있습니다.
ls -l -R *.doc
또는 적은 수의 줄에 파일을 나열하려는 경우.
ls -R *.doc
실행 해 보셨습니까? mkdir tmp; cd tmp; mkdir a; 터치 a/a.doc; ls -l -R * .doc –
find . | grep "\.doc$"
이뿐만 아니라 경로를 표시합니다.
+1, 매일 리눅스에 대해 새로운 것을 배웁니다. –
도트를 이스케이프 처리하는 것이 좋습니다. 그렇지 않으면'hellodoc'과 같은 파일도 일치합니다. 'ls -R | grep "\ .doc $"' – fedorqui
찾을 수있는 파일의 전체 경로를 표시하는 방법이 있습니까? 지금은 모든 파일의 목록 일뿐입니다. 그러나 실제로 어떻게 찾아야할지 모르겠습니다. – Russell