web-dev-qa-db-ja.com

拡張子のないすべてのファイルをコピーする

次のような拡張子でファイルをコピーできます。

cp *.txt ../new/

しかし、拡張子のないすべてのファイルをコピーするにはどうすればよいですか?

5
Hossein Nasr

@ ubaid-ashrafからの回答はほとんどありません。 kshで拡張子なしのファイルを指定する方法は次のとおりです。

cp -- !(*.*) /new/path/

ファイル名にドットが含まれているファイルはスキップされます。

これをbashで機能させるには、extglobオプション(shopt -s extglob)およびkshglobzshオプション(set -o kshglob)。

15
Abel Cheung

次のようなことができます:

cp -- !(*.txt) /path/to/directory

上記のコードは、.txt拡張子なしですべてのファイルをコピーします。パイプ文字を使用して複数の拡張子を付けることもできます。

例えば:

cp -- !(*.txt|*.c|*.py) /path/to/directory
6
UbaId Ashraf

Find + grepを使用して、拡張子のないファイルのみを取得できます

   find . -maxdepth 1 -type f | sed 's/^\.\///' | grep -v "\."

だからあなたのコピーコマンドは

   cp ` find . -maxdepth 1 -type f | sed 's/^\.\///' | grep -v "\." ` destination_folder
3
amisax