길이가 0인 숨겨진 파일 삭제

길이가 0인 숨겨진 파일 삭제

파일이 주어진 디렉터리에 있고 길이가 0인 파일, .swp 파일(아마도 숨겨져 있음) 또는 .tmp 파일(아마도 숨겨진 파일)인 경우 파일 이름과 디렉터리 이름을 명령줄 인수로 사용하는 Bash 스크립트를 작성하세요. 숨겨진).

누군가 이 코드를 제공할 수 있나요?

답변1

이는 이름이 점(숨겨짐)으로 시작하고 비어 있는 일반 파일인 "디렉터리 이름" 디렉터리의 파일을 반복적으로 나열합니다.

find «directory-name» -type f -name ".*" -empty

답변2

rm다음은 합리적이라고 생각되는 에코 버전입니다(반대로 테스트하기 더 쉽습니다).

아이디어는 두 부분으로 나누는 것입니다. 먼저 비어 있는지 테스트하고 조건부로 삭제합니다. 그런 다음 4가지 변형을 rm선택하세요 -f. 다음은 4개의 에코로 구성된 두 줄의 형식이 잘 정리된 것입니다.공백파일 이름에.

f="$1"

[ -e "$f" ] && [ ! -s "$f" ] && echo "$f" || echo '(nosuch)'

echo ---"$f".swp--- ---."$f".swp---
echo ---"$f".tmp--- ---."$f".tmp---

파일 지우기를 취소한 후 두 번째 출력입니다.

]# . delswp.sh 'f f'

f f
---f f.swp--- ---.f f.swp---
---f f.tmp--- ---.f f.tmp---

]# echo " " >>'f f'
]# . delswp.sh 'f f'

(nosuch)
---f f.swp--- ---.f f.swp---
---f f.tmp--- ---.f f.tmp---

제거 후 두 번째 부분은 다음과 같습니다.

rm -f "$f".swp ."$f".swp "$f".tmp ."$f".tmp

관련 정보