2つの質問があります。まず、ファイルとディレクトリを一覧表示しますが、ディレクトリを最初に一覧表示するコマンドは何ですか?
2番目の質問:ファイルのリストを単一のディレクトリにコピーしたいのですが、ターゲットディレクトリはコマンドの最初のファイル名になっています。
ベストアンサー1
GNUはありますか?
Gnuバージョンls
では。--group-directories-first
cp
-t
GNUはありませんか?
gnu を持たないシステムでls
最良のオプションは、/ および適切なオプションをfind
使用して連続して 2 回呼び出すことです。-maxdepth n
-mindepth n
-type t
find . -maxdepth 1 -mindepth 1 -type d
find . -maxdepth 1 -mindepth 1 \! -type d
ファイルをコピーするには、最初にtargetを使用して最初のパラメータを保存するスクリプトを作成し、次にを使用してパラメータをshift
最後に追加する必要があります。
#!/bin/sh
target="$1"
shift
cp -r -- "$@" "$target"
注意深い!
一緒に使用したい場合は、知っておくべきことは何ですか?つまり、または(おそらく使用して)find
からリストを収集し(またはラッパー)に渡します。ls
xargs
cp
cp
リスクはファイルのリストを解析することです。(デフォルトでは、ファイル名には改行文字などの文字を含めることができ、スクリプトが混乱する可能性があります。)具体的には、find
オプションと-exec
オプションを見てください。-print0
xargs
-0
ディレクトリツリーを効率的にコピーするための代替ツールです。
使用を検討することもできます。rsync
逆に、作業をより簡単にする多くの機能があります。