次のような拡張子でファイルをコピーできます。
cp *.txt ../new/
しかし、拡張子のないすべてのファイルをコピーするにはどうすればよいですか?
@ ubaid-ashrafからの回答はほとんどありません。 ksh
で拡張子なしのファイルを指定する方法は次のとおりです。
cp -- !(*.*) /new/path/
ファイル名にドットが含まれているファイルはスキップされます。
これをbash
で機能させるには、extglob
オプション(shopt -s extglob
)およびkshglob
のzsh
オプション(set -o kshglob
)。
次のようなことができます:
cp -- !(*.txt) /path/to/directory
上記のコードは、.txt拡張子なしですべてのファイルをコピーします。パイプ文字を使用して複数の拡張子を付けることもできます。
例えば:
cp -- !(*.txt|*.c|*.py) /path/to/directory
Find + grepを使用して、拡張子のないファイルのみを取得できます
find . -maxdepth 1 -type f | sed 's/^\.\///' | grep -v "\."
だからあなたのコピーコマンドは
cp ` find . -maxdepth 1 -type f | sed 's/^\.\///' | grep -v "\." ` destination_folder