![execvのファイルは削除せずに、他の場所のすべてのディレクトリはどのように削除できますか? [閉鎖]](https://linux33.com/image/14737/execv%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AF%E5%89%8A%E9%99%A4%E3%81%9B%E3%81%9A%E3%81%AB%E3%80%81%E4%BB%96%E3%81%AE%E5%A0%B4%E6%89%80%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AF%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E5%89%8A%E9%99%A4%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
私がホームディレクトリにあり、コンテンツといくつかのファイルを含む2つのディレクトリ(名前がわからないと仮定)がある「Apple」というディレクトリがあるとしましょう。自宅で端末を開き、CDを使わずに「Apple」からこれら2つのディレクトリを削除したいと思います。
利用できません'rm -r ホーム/アップル/*/'私も使えません。'rmdir ホームディレクトリ/Apple/*'。
助ける?
答え1
私は「ホームディレクトリ」があなたのホームディレクトリを意味すると仮定します。これは、ディレクトリではなく引数なしで~
実行されたときに終了することです。cd
/home
~/Apple
削除するディレクトリが2つあります。dir1
これをと呼びますdir2
。削除したくない他のディレクトリがあると仮定すると、次のものを使用できます。
rm -rf ~/Apple/dir1 ~/Apple/dir2
両方のディレクトリとその内容を削除します。ホームディレクトリにある場合は、~/
コマンドから両方のパス名を省略できます。
もしこれらただディレクトリを~/Apple
使用すると使用できます
rm -rf ~/Apple/*/
Apple
ホームディレクトリからこのディレクトリのすべてのサブディレクトリを削除します。ワイルドカードパターンはディレクトリとしてのみ解釈できるため、末尾のスラッシュが*/
使用される限りディレクトリではない場合はApple
影響を受けません。同様に、~/
ホームディレクトリにある場合は無視できます。
もちろん、入力エラーが原因でデータが多すぎる場合は、復元できるように正しくバックアップされたデータをテストする必要があります。
答え2
find
Apple内から直接すべてのディレクトリを見つけて削除できます。
find home/Apple -type d -maxdepth 1 -mindepth 1 -exec rm -rf {} \;