find unix 명령을 사용하여 절대 경로를 얻는 방법


11

find 명령을 사용하여 절대 경로를 얻는 방법.
실제로 나는 다음 스크립트를 실행 중입니다 :-

find . -size +20M | while read a
do
     i=$(echo $a | sed 's:/: :g')
     echo $a;
     j=($i)
     fileName=${j[${#j[@]}-1]}
     userName=${j[${#j[@]}-3]}
done

그러나 여기 $a에서 시작하는 경로를 보여주는 변수이지만에서 ./Downloads/filename절대 경로를 원합니다 /.

답변:


16

절대 경로와 함께 find를 사용하십시오.

find /path/ -size +20M

전체 경로를 인쇄합니다.
작업 디렉토리를 모르는 경우 다음 pwd과 같이 명령 대체를 사용 하십시오.

find "`pwd`" -size +20M 
   #or like this:
find "$(pwd)" -size +20M

작업 디렉토리를 얻으려면

어쨌든, 배쉬 맨은 이제 $()이상 사용을 권유 ``하므로 두 번째 양식을 사용해야합니다. $PWD스크립트의 작업 디렉토리가 포함 된 변수를 직접 참조 할 수도 있고 루프에서 사용해야하는 경우 더 빠를 수 있습니다.

find "$PWD" -size +20M

그러나 나는 길을 가지고 있지 않습니다. 현재 디렉토리로?
Shivam Sharma

2
로 시작하지 말고 대신 .사용하십시오 $(pwd). 그러면 전체 경로가 제공됩니다.
bsd

8

pwd명령을 사용 하거나 파일을 인쇄 할 수 있습니다 realpath.

$ find "$(pwd)" -size +20M
$ find . -size +20M -exec realpath {} +

두 명령은 모두 파일의 절대 경로를 제공합니다.


그러나 두 번째 것은 find :`realpath ': 그런 파일이나 디렉토리가 없음
Shivam Sharma

흠. coreutils패키지에서 제공하지만 설치되지 않았을 수 있습니다. 로 찾아보십시오 which realpath.
Spack

그것은 아무것도 찾을 수 없습니다 ..
Shivam Sharma

어떤 시스템을 사용하고 있습니까?
Spack

Linux BANE 3.7-trunk-amd64 # 1 SMP 데비안 3.7.2-0 + kali8 x86_64 GNU / Linux
Shivam Sharma

0

절대 경로를 사용하여 7 일이 지난 모든 PNG 및 JPEG 파일을 나열합니다.

$ find $PWD/ -mtime -7 -print -exec grep -e ".png\|.jpg" {} \;

$PWD일치하는 모든 파일에 여기에 추가됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.