ディレクトリ内のすべてのファイルを削除しますが、ディレクトリは削除しません

ディレクトリ内のすべてのファイルを削除しますが、ディレクトリは削除しません

というディレクトリがありますouter

outerinner(同じ拡張子を持つ多くのファイルを含む)というディレクトリが含まれています。

私はcdここにいますouter。その中のすべてのファイルを削除しinner、ディレクトリはそのままにするにはどうすればよいですかinner(空)。

ベストアンサー1

ディレクトリ自体ではなくディレクトリの内容を削除するには、rm内容を削除するように指示するだけです。

rm inner/*

これにより、隠されたファイル以外のすべてのファイルが削除され、./innerディレクトリは変更されていません。サブディレクトリを同時に削除するには、次を使用します-r

rm -r inner/*

隠しファイルも削除するには、次のようにします(bashを使用していると仮定)。

shopt -s dotglob
rm -r inner/*

最後のコマンドは、すべてのファイルとすべてのディレクトリを削除しますinnerが、innerそれ自体は変更されていません。

最後に、次のいずれかをcd実行する必要はありません。outer

$ tree -a outer/
outer/
├── dir
└── inner
    ├── dir
    ├── file
    └── .hidden

3 directories, 2 files

これrm -r outer/inner/*で、それなしで現在のディレクトリで実行できcd outer、ディレクトリ自体を除くすべてが削除されます。

$ shopt -s dotglob
$ rm -r outer/inner/*
$ tree -a outer/
outer/
├── dir
└── inner

2 directories, 0 files

おすすめ記事