GNUはありますか?

GNUはありますか?

2つの質問があります。まず、ファイルとディレクトリを一覧表示しますが、ディレクトリを最初に一覧表示するコマンドは何ですか?

2番目の質問:ファイルのリストを単一のディレクトリにコピーしたいのですが、ターゲットディレクトリはコマンドの最初のファイル名になっています。

ベストアンサー1

GNUはありますか?

Gnuバージョンlsでは。--group-directories-firstcp-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からリストを収集し(またはラッパー)に渡します。lsxargscpcpリスクはファイルのリストを解析することです。(デフォルトでは、ファイル名には改行文字などの文字を含めることができ、スクリプトが混乱する可能性があります。)具体的には、findオプションと-execオプションを見てください。-print0xargs-0

ディレクトリツリーを効率的にコピーするための代替ツールです。

使用を検討することもできます。rsync逆に、作業をより簡単にする多くの機能があります。

おすすめ記事