2016-09-18 4 views
0

Fish를 사용하면 특정 파일 (또는 디렉토리)을 제외한 디렉토리의 내용을 어떻게 삭제할 수 있습니까? bash의 rm !(file1|file2)과 같은 것이지만 fishier입니다.Fish Shell : 모두 삭제

답변

2

어류에는 그러한 특징이 없습니다. 이는 #1444입니다.

이 그들에 개행 문자와 파일 이름에 실패 할

rm (string match -rv '^file1$|^file2$' -- *) 

주처럼 뭔가를 할 수 있습니다.

하거나 이보다을 수행 할 수 있습니다 상관없이 파일 이름에 포함 된 내용 작동하지합니다

set -l files * 
for file in file1 file2 
    if set -l index (contains -i -- $file $files) 
     set -e files[$index] 
    end 
end 
rm $files 

.

또는 해당 문제에서 언급했듯이 find를 사용할 수 있습니다.

find . -mindepth 1 -maxdepth 1 -type f -a ! \(-name 'file1' -o -name 'file2' \)