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逆に、作業をより簡単にする多くの機能があります。

答え2

提供する強く打つそして扱いにくい

~/.bashrc または ~/.zshrc にエイリアスを追加します。

# Colorize the ls output ##
alias ls='LC_COLLATE=C ls -h --group-directories-first --color=auto'

または、ZSHがある場合は、次のものを使用できます。「ケイ」便利

k -h --group-directories-first

ここに画像の説明を入力してください。

抗原と一緒にインストールし、以下を〜/.zshrcに入れます。

antigen bundle reduxionist/k --branch=add-sort-options

答え3

まず、GNU以外のディレクトリを一覧表示しますls

ls -l | sort

これには、シンボリックリンク、ソケット、パイプ(もちろん適切にグループ化されています)など、他のすべての奇妙な項目がリストされていますが、これらの項目が非常にまれであることを考慮すると問題ではありません。それ以外の場合、フィルタはls -l | grep '^(-|d)' | sort

答え4

色付きのフォルダとファイル名を持つ私のバージョンは、いくつかの改善点を含む@clarkttfuのソリューションに基づいています。 MacOSでテスト済みです。

ls -lh | sort -r | awk 'NF==9 { if ($1~/^d/) { printf $1 "/" $2 "/" $3 "/" $4 "/" $5 "/" $6 " " $7 "/" $8 " " "\033[1;34m" $9 "\033[0m" "\n" } else { printf $1 "/" $2 "/" $3 "/" $4 "/" $5 "/" $6 " " $7 "/" $8 " " "\033[1;32m" $9 "\033[0m" "\n" } }' | column -t -s"/"

またはエイリアスを作成します。

alias ll='ls -lh | sort -r | awk '\''NF==9 { if ($1~/^d/) { printf $1 "/" $2 "/" $3 "/" $4 "/" $5 "/" $6 " " $7 "/" $8 " " "\033[1;34m" $9 "\033[0m" "\n" } else { printf $1 "/" $2 "/" $3 "/" $4 "/" $5 "/" $6 " " $7 "/" $8 " " "\033[1;32m" $9 "\033[0m" "\n" } }'\'' | column -t -s"/"'

ここに画像の説明を入力してください。

関連情報