find unix 명령을 사용하여 절대 경로를 얻는 방법 sed ‘s:/:

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절대 경로를 원합니다 /.



답변

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

find /path/ -size +20M

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

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

작업 디렉토리를 얻으려면

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

find "$PWD" -size +20M

답변

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

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

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


답변

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

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

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