
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
일치하는 모든 파일에 추가됩니다.