特定のディレクトリのリストから外部ディレクトリを削除するには、クリーンアップスクリプトを作成する必要があります。
私の考えは、次のようにすることです。
#!/bin/ksh find /data/${USER}/SAS/ -type d ! -name 'SE' | find /data/${USER}/SAS/ -type d ! -name 'Rejet' | find /data/${USER}/SAS/ -type d ! -name 'Acq' | find /data/${USER}/SAS/ -type d ! -name 'Archiv' | find /data/${USER}/SAS/ -type d ! -name 'Cloture' | find /data/${USER}/SAS/ -type d ! -name 'Emis' | find /data/${USER}/SAS/ -type d ! -name 'Ident' | find /data/${USER}/SAS/ -type d ! -name 'Irr*' | find /data/${USER}/SAS/ -type d ! -name 'Recep*'
それなら-type f -exec rm {} \;
本当に何をすべきかわかりません。
ベストアンサー1
/data/${USER}/SAS/
事前定義/指定されたリスト内のフォルダを除くパス内のすべてのフォルダを削除するには、次の最適化find
方法を使用します。
find /data/${USER}/SAS/ -type d -regextype posix-egrep \
! -regex ".*/(SE|Rejet|Acq|Archiv|Cloture|Emis|Ident|Irr.*|Recep.*)" \
! -name "SAS" -exec rm -rf {} \;