2つの質問があります。まず、どのコマンドがファイルとディレクトリをリストしますが、ディレクトリを最初にリストしますか?
2番目の質問:ファイルのリストを単一のディレクトリにコピーしたいのですが、ターゲットディレクトリをコマンドの最初のファイル名にします。
ls
のGNUバージョンには_--group-directories-first
_があります。また、cp
には_-t
_があります。
Gnuのls
を持たないシステムでは、_-maxdepth n
_/_-mindepth n
_を使用したfind
への2つの連続した呼び出しと、適切なオプションを使用した_-type t
_が最適です。
_find . -maxdepth 1 -mindepth 1 -type d
find . -maxdepth 1 -mindepth 1 \! -type d
_
ファイルをコピーするには、最初にターゲットを指定して、最初の引数を保存し、shift
を使用して最後に引数を追加するスクリプトを作成する必要があります。
_#!/bin/sh
target="$1"
shift
cp -r -- "$@" "$target"
_
これらを一緒に使用することを計画している場合、つまり、find
またはls
からリストを収集し(おそらくxargs
を使用して)、それをcp
(またはcp
ラッパー)に渡す場合、何に 危険が潜んでいるかに注意する必要があります)ファイルのリストの解析 (基本的に、ファイル名には、スクリプトを混乱させる改行のような文字を含めることができます)。具体的には、find
の_-exec
_および_-print0
_オプションとxargs
の_-0
_オプションを調べます。
代わりに rsync
を使用することを検討してください。それはあなたの仕事を容易にするかもしれない多くの機能を持っています。
bashおよびzshで機能します
〜/ .bashrcまたは〜/ .zshrcにエイリアスを追加するだけです
# Colorize the ls output ##
alias ls='LC_COLLATE=C ls -h --group-directories-first --color=auto'
また、ZSHを使用している場合は、 "k" ユーティリティを使用できます。
k -h --group-directories-first
以下を〜/ .zshrcに入れて、抗原とともにインストールするだけです
antigen bundle reduxionist/k --branch=add-sort-options
非GNUのディレクトリを最初にリストするls
:
_ls -l | sort
_
これは、シンボリックリンク、ソケット、パイプなどの他の奇妙なものもすべてリストします(もちろん、適切にグループ化されています)。それ以外の場合、フィルターはls -l | grep '^(-|d)' | sort
になります
MacOSのような非GNUの場合、awkは他のすべてのフィールドをフィルタリングできます。
ls -l | sort -r | awk 'NF==9 { if ($1~/^d/) { print $9 "/" } else { print $9 } }'
ls -l
の出力には9つのフィールドが含まれている必要があります出力はls -1
のようになりますが、ディレクトリが最初に置かれます。
node_modules/
src/
e2e/
angular.json
tslint.json
package.json
README.md
Ls manページの「The Long Format」によると、他のファイルタイプが関与する場合、出力順序は次のようになります。
s Socket link.
p FIFO.
l Symbolic link.
d Directory.
c Character special file.
b Block special file.
- Regular file.
便利なbash関数(.bash_profileまたは.bashrcに入れます):
function l1() {
ls -l $* | sort -r | awk 'NF==9 { if ($1~/^d/) { print $9 "/" } else { print $9 } }'
}
zsh
の補完リストの場合、list-dirs-first
スタイルをtrue
に変更すると、最初にディレクトリが表示されます。あなたの~/.zshrc
:
zstyle ':completion:*' list-dirs-first true
(ここではallをサポートする補完ウィジェットとすべてのコマンドに適用されます。必要に応じて制限できます。詳細はzstyle
のドキュメントを参照してください)
まだ行っていない場合は、compinstall
も実行して、完了リストを色付きで、説明などとともに、その他すべてのグッズとともに取得してください。