Linuxで*をつかってファイル移動をしたいのですが、
引数リストが長すぎますとエラーが出ます。
解決方法を教えてください!
例えば、何千個もあるpng画像ファイルをABCフォルダに入れたいとき、
mv *.png ABC/
とすると
-bash: /bin/mv/: 引数リストが長すぎます
とエラーが出ます。
Linux初心者なもので、具体的にどのように入力したらいいのか、
お教えください。
よろしくお願いします。
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
find ./ -type f -name "*.png" -print0 | xargs -0 -I{} mv {} <destination>
ではいかが。
うまく行かないようなら、
find . -type f -name "*.png" -exec mv {} <destination> \;
も試してみてください。ちなみにセミコロンの前にあるのは、バックスラッシュです。ここに書き込んだ時点で文字化けしているかもしれないので、コピペでなく手入力してください。
No.7
- 回答日時:
> mv a*.png ABC/
> mv b*.png ABC/
> |
> mv z*.png ABC/
そんなスクリプトじゃ a*.png とかが数千個あれば結局同じ事です。それに「あいうえお.png」とかはどうするんですか?
書くとすれば
cd source_directory
find . -type f -name "*.png" | \
while read filename
do
mv $filename /target_directory/
done
でしょうかね。でもこれもファイル名にスペースがあったりするとうまく行かない可能性があるので、やはり xargs を利用した1行コマンドがベストです。
No.5
- 回答日時:
#2~#4 さんは誤解されているようですが、mv コマンドが動かないんじゃなくて、対象ファイルが数千とか数万の単位になると、シェルが展開できなくなってエラーが起きるという事です。
ですから、検証するなら数千個のファイルを作らないと意味がないですよ。本題については、#1 さんの書かれているとおり xargs を使うか、find コマンドの exec オプションが '+' をサポートしているタイプなら
find . -type f -name "*.png" -exec mv {} <destination> +
とすればいいでしょう。
この回答への補足
回答ありがとうございます。
findでやってみると
find: `-exec' に引数が見つかりません
とエラーがでました。
どうしたらいいのでしょうか?
No.4
- 回答日時:
気になったので、外付けHDDをつないで
VM配下でCentOS(RHEL互換)を立ち上げて実験してみました。
1).abc.txtを作成して、さらにコピーでcde.txtを作る。
2).カレントの下にABCディレクトリを作成して、パーミッションを777にする。
3).mv *.txt ABC/
正常に実行されます。
シェルは、デフォルトでbashなのでbashを使用しました。
次に、UNIX(Solaris 10)で同じ実験をします。
# mkdir ABC
# chmod 777 ABC
# bash ※ここで、シェルが違うのに気付いた^^;
bash-3.00# cp abc.txt cde.txt
bash-3.00# mv *.txt ABC/
bash-3.00# cd ABC
bash-3.00# ls
abc.txt cde.txt
うまくいってます。
もしかして、ものすごく古いLinuxをお使いですか? Redhat 9とか?
この回答への補足
何度も回答ありがとうございます。
2,3個のファイル移動はできるのですが2000個になると出来ませんでした。
vine Linux 5(?) を使っています。
No.3
- 回答日時:
外付けHDDをつなげないとLinuxが上がらないので
机上で答えています。
1).まず
mv *.{png} A/
2).上記が失敗したら
mv *.{png, dummy} A/
※dummyという拡張子のファイルが無いものと仮定します。
うまくいかないときには、明日つなげて試してみます。
No.1
- 回答日時:
この回答への補足
解答ありがとうございます。
ファイル数は2000個くらいです。
サイトを見たのですが、具体的にどうしたらいいかわかりませんでした・・・。
どう入力したらいいのでしょうか?
初心者ですみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
- UNIX・Linux bash環境でのエラー対応をお願い致します。 1 2022/11/26 17:41
- UNIX・Linux Linux Ubuntu22.4の起動時エラーについて 2 2022/07/22 14:52
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- UNIX・Linux mxlinux 起動時エラーについて 1 2023/01/28 23:05
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファ 1 2023/02/03 03:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
シェルスクリプトでエラーが出ます
UNIX・Linux
-
-bash: ftp: コマンドが見つかりません
UNIX・Linux
-
linuxコマンド mkdirでディレクトリを作成したのにディレクトリではありませんとエラーが
UNIX・Linux
-
-
4
ラズパイで『’test.service’をstatできません:そのようなファイルやディレクトリはあり
UNIX・Linux
-
5
CPコマンドでファイルがコピーできない
その他(開発・運用・管理)
-
6
TOPコマンドで表示するCPU使用率で100%以上の表示について
UNIX・Linux
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
コマンドプロンプト net user...
-
○行目から□行目だけを表示する...
-
【DOSコマンド】for文の中で変...
-
ファイルの先頭に文字を追加す...
-
スラッシュ"/"を削除したい
-
renameコマンドでファイル名か...
-
Windowsで定期的にUNIXへFTPす...
-
CentOS/リダイレクションに改行...
-
^M削除方法、教えてください。
-
SONYの音楽ソフト「x-アプリ」...
-
TOPコマンドで表示するCPU使用...
-
Dirコマンドでフォルダ内ファイ...
-
エクセルの表にヘンな枠が・・・
-
スクリプトのエラー「unexpecte...
-
テキストファイルから最終行の抽出
-
batである文字列内に特定の文字...
-
Linux環境 grepで改行コード(CR...
-
プロセス、サービス、デーモン...
-
ラズパイで『’test.service’をs...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
バッチで特定文字が含まれる先...
-
【Linux】findコマンドの表示順
-
Linuxで*をつかってファイル移...
-
【DOSコマンド】for文の中で変...
-
renameコマンドでファイル名か...
-
*.txtファイルの最終行だけ参照...
-
スラッシュ"/"を削除したい
-
CentOS/リダイレクションに改行...
-
UNIXで、ディレクトリを比較し...
-
DOSでテキストファイルの中のあ...
-
ファイルの先頭に文字を追加す...
-
○行目から□行目だけを表示する...
-
標準出力とリダイレクトを同時...
-
OSXで常に最後に表示される文字...
-
sedで置換した値を変数にセット...
-
windows7でmingwのgrepで漢字の...
-
コマンドプロンプト net user...
-
Windowsコマンドラインで文字列...
-
ファイルリストを印刷したい。
おすすめ情報