
디렉터리에 확장자가 .dat인 파일이 있는데 디렉터리에서 해당 파일을 삭제하지 않고 해당 파일을 모두 비우고 싶습니다.
이렇게 구현하려고 했으나 성공하지 못했습니다.
> *.dat
-bash: *.dat: ambiguous redirect
답변1
다음을 수행할 수 있습니다.
:|tee -- *.dat
또는 zsh
( multios
동일):
:>*.dat
그러나 이렇게 하면 모든 파일이 동시에 열리기 때문에 파일 수가 많은 경우 열린 파일 설명자 최대 개수에 도달할 수 있습니다.
답변2
노력하다
for x in *.dat
do
> "$x"
done
이것은 기본적으로 모든 파일을 반복하여 >
.
답변3
시스템에 truncate
GNU coreutils의 유틸리티가 있으면 다음을 수행할 수 있습니다.
truncate -s 0 -c -- *.dat
-s 0
일치하는 항목이 없으면 리터럴 이름을 가진 새 파일이 생성되지 않도록 하면서 크기를 0으로 설정합니다 -c
(이 경우 쉘이 확장되지 않은 파일을 반환하는 경우).*.dat
*.dat