파일이 주어진 디렉터리에 있고 길이가 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