だから、作業を始める前にディレクトリを整理したいと思います。私はちょっとこんな感じです。
./static
├── css
│ └── styles
├── img
│ └── pictures
└── js
└── scripts
私はrm
の内容が欲しいが望んでいません。css
js
img
両方のパスを入れることができることを知っていますが、それは面倒でこの方法を試しましたが、成功しませんでした。
rm -r ./static/{css,js}/*
rm: './static/{css,js}/*' を削除できません。そのファイルやディレクトリはありません。
これを行う方法についてのアイデアはありますか?
ベストアンサー1
*
あなたのコマンドはファイルとして扱われます。試してみてください。rm -rf ./static/{css,js}/
代わりに、Bash拡張ワイルドカード(最初にテストした後に削除echo
):
$ shopt -s extglob
$ cd static
$ echo rm -rf !(img)
または 短い答え
ls | grep -v "img" | xargs rm -rf
コメントでOPが提案したように、この手順に従って作業を完了してください。まず、ファイルを印刷してテストを実行して、必要なものを入手したことを確認してください。
$ find . -path ./img -prune -o -type f
./css/styles
./img
./js/scripts
確認後削除してください。
$ find . -path ./img -prune -o -type f -exec rm {} \;
$ static/
├── css
├── img
│ └── pictures
└── js