GNU가 있나요?

GNU가 있나요?

두 가지 질문이 있습니다. 먼저, 파일과 디렉터리를 나열하지만 디렉터리를 먼저 나열하는 명령은 무엇입니까?

두 번째 질문: 파일 목록을 단일 디렉터리에 복사하고 싶지만 대상 디렉터리가 명령의 첫 번째 파일 이름으로 되어 있습니다.

답변1

GNU가 있나요?

Gnu 버전 ls에는 --group-directories-first.cp-t

GNU가 없나요?

gnu 가 없는 시스템에서 ls가장 좋은 옵션은 / 및 적절한 옵션을 find사용하여 연속적으로 두 번 호출하는 것입니다.-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"/"'

여기에 이미지 설명을 입력하세요.

관련 정보