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

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

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하지만 시작부터 절대 경로를 원합니다 /.

답변1

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

find /path/ -size +20M

전체 경로가 인쇄됩니다.
작업 디렉터리를 모르는 경우 다음과 같이 명령 대체를 사용하세요 pwd.

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

작업 디렉터리 가져오기

어쨌든 Bash man은 이제 $()over 사용을 권장하는 것 같으니 ``두 번째 형식을 사용해야 합니다. 또한 스크립트의 작업 디렉터리가 포함된 변수를 직접 참조할 수도 있는데 $PWD, 이는 루프에서 사용해야 하는 경우 더 빠를 수 있습니다.

find "$PWD" -size +20M

답변2

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

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

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

답변3

7일 전의 모든 PNG 및 JPEG 파일을 절대 경로와 함께 나열합니다.

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

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

관련 정보