탭 완성 목록에서 날짜별로 파일을 주문하는 방법


9
$ 7z l ~ / 다운로드 /Tab

결과 목록을 이름이 아닌 날짜별로 정렬하는 방법은 무엇입니까?

나는 현재 특정 디렉토리에 N 개의 가장 최근 파일을 나열하고 파일 이름을 수동으로 명령 줄에 복사하기 위해 특수 스크립트를 사용하지만 매끄럽고 편리하게 만들고 싶습니다.


4
zsh에서 쉽습니다 . bash에서 가능한지 모르겠습니다.
Gilles 'SO- 악마 그만'

날짜별로 나열된 파일 만 보시겠습니까, 아니면 날짜순으로 아카이브에 추가하겠습니까?
terdon

"Downloads"디렉토리에는 다양한 파일이 있으며 최근에 다운로드 한 파일에 액세스하고 싶습니다 (포장 풀기, 어딘가 이동 등).
Vi.

답변:


2

나는 그렇게 bash할 수 없다고 생각 하므로 시도해보십시오 zsh. 나는 zsh 사용자는 아니지만이 구성이 작동해야한다고 생각합니다.

autoload -U compinit
compinit
zstyle ':completion:*' file-sort modification reverse

( reverse화면의 상단 부분이 보이지 않을 수 있으므로 목록 끝에 최신 파일이 표시됩니다.)


0

때때로 다운로드 디렉토리에서 가장 최근에 다운로드 한 파일을 찾아야하지만 정확한 파일 이름을 모를 수도 있습니다. 내가하는 방법은 다음과 같습니다.

ls -rt ~/Downloads

ls -t이름이 아닌 시간별로 파일을 나열하며 가장 최근 파일이 먼저 표시됩니다. 내 다운로드 디렉토리에 너무 많은 파일이 포함되어 있으므로 목록의 맨 위로 스크롤하여 가장 최근 파일을보고 싶지 않습니다. ls -rt목록의 순서를 반대로하여 가장 최근 파일을 목록의 맨 아래에 표시합니다.

거기에서 필요한 것을 쉽게 할 수 있습니다. 예를 들면 다음과 같습니다.

unzip $(ls -rt ~/Downloads | tail -n1)

또는

mv $(ls -rt ~/Downloads | tail -n1) *some_other_location*

원래 질문은 다음과 같이 수행 할 수 있습니다.

7z l $(ls -rt ~/Downloads | tail -n1)

이것이 탭 완성 방법을 준수하지는 않지만 귀하의 요구에 적합 할 수 있음을 알고 있습니다.


입력을 저장하지 않습니다. 실제로 나는 이것을 할 수 있는 스크립트 rl를 가지고 있습니다 ls -lhtc "$@" | head -n $N.
Vi.

문제는이 스크립트 나 다른 스크립트를 <kbd> Tab </ kbd>에 통합하여 생각을 원활하게하는 방법입니다.
Vi.

또한 스 니펫은 다운로드 한 파일에서 일반적으로 까다로운 파일 이름을 손상시키는 경향이 있습니다.
Vi.

0

나는 그것을 위해 다음 단계를 수행 할 것입니다

  1. First I will find the files and their timestamps
  2. Sort them reversely
  3. Take top N
  4. Get the filenames
  5. Zip it or do whatever u like

스크립트는 다음과 같습니다 (복잡 할 수 있음)

find ~/Downloads/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r | head -N | cut -d' ' -f3 | xargs 7z l

이미 rl(최근 목록) 이라는 비슷한 스크립트가 있습니다 . 그러나 명시 적으로 호출 한 다음 복사 및 붙여 넣기해야합니다. 탭 완성과 더 통합되기를 원합니다.
Vi.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.