指定された名前のファイルを除く、指定されたディレクトリ内のすべてのファイルを削除するワンライナーを作成するにはどうすればよいですか?

いいでしょう

という名前のファイルを除いて、floopというディレクトリ内のすべてのファイルを削除するoneliner(Windowsラップトップで実行されているubuntu上)を作成しようとしていますfile keep me

これは私がすでに得たものです:

for foo in /floop;
do
    if [ ! $foo == "file keep me" ];
    then
        rm -r $foo;
    fi;
done

私が得ているエラーは次のとおりです。

rm: cannot remove '/floop': No such file or directory

floop/ホームディレクトリで試したところ、フォルダ全体が削除されたため、現時点ではディレクトリ自体で試しています。

hek2mgl

使用find

find /path/to/folder -maxdepth 1 -type f ! -name 'name of file' -delete

PS:forループの正しいバージョンは次のようになります:

for foo in /floop/* ; 
do
    # Skip the file you want to keep       
    if [ "$foo" = "/floop/file keep me" ] ;
    then
        continue
    fi

    # Skip directories
    if [ -d "$foo" ] ;
    then
        continue
    fi

    # Remove other files
    rm "$foo"
done

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ