~application/x-trash 파일 확인 방법

~application/x-trash 파일 확인 방법

~application/x-trash 디렉토리와 그 하위 디렉토리에 있는 파일을 확인하는 간단한 bash 스크립트가 있습니다.

잘 작동하지만 에코가 비어 있습니다..~또한 이것은 무해해 보이지만 짜증나는 일입니다. 이것을 어떻게 피할 수 있습니까?

스크립트

#!/bin/sh
cd '/var/www/html/mypath/'
for d in $(find '/var/www/html/mypath/' -maxdepth 6 -type d)
do

echo $d
for f in  $d'/'*.*~; 
    do  FILE=$f;
        echo 'file to be removed:  '$FILE
    done
done

하위 디렉터리 dir의 경우 dir에 ~ 파일이 없으면 터미널에 다음이 표시됩니다.

삭제할 파일:/var/www/html/mypath/../../../dir/*.*~

답변1

*~이름이 일치하는 파일 .*~(보통 편집자가 남겨둔 백업 파일) 을 찾고 싶다고 가정하면 다음 단일 find호출로 해당 작업이 수행됩니다.

find /var/www/html/mypath/ -type f \( -name '*~' -o -name '.*~' \) -print 

-maxdepth 6타당하다고 생각되면 다음을 삽입할 수 있습니다.

find /var/www/html/mypath/ -maxdepth 6 -type f \( -name '*~' -o -name '.*~' \) -print 

발견된 파일을 삭제하려면 -delete명령 끝에 추가하면 됩니다.


쉘이 파일 이름 와일드카드 패턴을 이름 목록으로 확장할 수 없으면 확장되지 않은 상태로 유지됩니다. 이것이 바로 코드가 얻는 결과를 얻는 이유입니다.

답변2

다음은 내 요구 사항을 충족합니다.

#!/bin/sh

cd '/var/www/html/mypath/'

for i in `find '/var/www/html/mypath/' \( -name '*~' -o -name '.*~' \) -type f`; do

    echo 'file to be removed:  '$i
    mv $i   '/var/www/html/trashTest'
done

관련 정보