$ 7z l ~/다운로드/Tab
이름 대신 날짜별로 결과 목록을 정렬하려면 어떻게 해야 합니까?
저는 현재 특수 스크립트를 사용하여 특정 디렉터리에 있는 N개의 최신 파일을 나열하고 파일 이름을 명령줄에 수동으로 복사하지만 원활하고 더 편리하게 만들고 싶습니다.
답변1
할 수 없을 것 같으니 bash
해보셔도 됩니다 zsh
. 저는 zsh 사용자는 아니지만 다음 구성이 작동해야 한다고 생각합니다.
autoload -U compinit
compinit
zstyle ':completion:*' file-sort modification reverse
( reverse
위 섹션이 화면에 표시되지 않을 수 있으므로 여기 목록 끝에 있는 최신 파일을 확인하세요.)
답변2
때로는 다운로드 디렉터리에서 최근 다운로드한 파일을 찾아야 하는데 정확한 파일 이름을 모를 수도 있습니다. 내가 한 일은 다음과 같습니다.
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)
이것이 탭 완성 접근 방식에 맞지 않는다는 것을 알고 있지만 귀하의 요구 사항에는 적합할 수 있습니다.
답변3
이에 대해 다음 단계를 수행하겠습니다.
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
답변4
Bash에서는 다음을 사용하여 가까운 것을 얻을 수 있습니다.
7z l ~/Downloads/
Alt+n
이는 재정의된 변수의 함수에 bind
매핑되었습니다 .Alt+nREADLINE_LINE
대략적인 탭 완성을 위해 인수 구문 분석-perl-kludge를 사용하여 fzf
메뉴를 표시합니다.
https://github.com/WillForan/fuzzy_arg/blob/master/fuzzy_new_complete.bash