ファイル以外のファイルを削除する方法を尋ねる投稿はたくさんありますが、私の質問はもっと具体的です。 migrations
という名前のフォルダがいくつかあります __init__.py
を含む現在のディレクトリのサブフォルダ ファイルといくつか。 __init__.py
以外のすべてのファイルを削除する方法 migrations
という名前のすべてのサブフォルダ 現在のフォルダから?
UPD:__init__.py
を上書きすることは可能ですか? 空のファイルで?
フォルダ構造:
├── folder_1
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ ├── 0001_initial.cpython-35.pyc
│ │ └── __init__.cpython-35.pyc
├── folder_2
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ ├── 0001_initial.cpython-35.pyc
│ │ └── __init__.cpython-35.pyc
├── folder_3
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ ├── 0001_initial.cpython-35.pyc
│ │ └── __init__.cpython-35.pyc
承認された回答:
find
を使用 :
find . -path '*/migrations/__init__.py' -exec truncate -s 0 {} + -o -path '*/migrations/*' -delete
これはfind
を実行します 現在のディレクトリ(.
)、および:
migrations/__init__.py
に一致するもの 、truncate
を実行します 指図。truncate -s 0 <file>
ファイルをサイズ0(空)に縮小します。-
migrations/*
に一致するものについては、その一致に失敗します 、削除されます; -
*
-path
内/
に一致*
とは異なり bashで。
例:
$ tree
.
├── folder_1
│ └── migrations
│ ├── 0001_initial.py
│ ├── __init__.py
│ └── __pycache__
│ ├── 0001_initial.cpython-35.pyc
│ └── __init__.cpython-35.pyc
├── folder_2
│ └── migrations
│ ├── 0001_initial.py
│ ├── __init__.py
│ └── __pycache__
│ ├── 0001_initial.cpython-35.pyc
│ └── __init__.cpython-35.pyc
└── folder_3
├── admin.py
├── apps.py
├── __init__.py
└── migrations
├── 0001_initial.py
├── __init__.py
└── __pycache__
├── 0001_initial.cpython-35.pyc
└── __init__.cpython-35.pyc
9 directories, 15 files
$ find . -path '*/migrations/__init__.py' -exec truncate -s 0 {} + -o -path '*/migrations/*' -delete
$ tree
.
├── folder_1
│ └── migrations
│ └── __init__.py
├── folder_2
│ └── migrations
│ └── __init__.py
└── folder_3
├── admin.py
├── apps.py
├── __init__.py
└── migrations
└── __init__.py
6 directories, 6 files
$ wc -l */migrations/__init__.py
0 folder_1/migrations/__init__.py
0 folder_2/migrations/__init__.py
0 folder_3/migrations/__init__.py
0 total