$ 7z l ~ / 다운로드 /Tab
결과 목록을 이름이 아닌 날짜별로 정렬하는 방법은 무엇입니까?
나는 현재 특정 디렉토리에 N 개의 가장 최근 파일을 나열하고 파일 이름을 수동으로 명령 줄에 복사하기 위해 특수 스크립트를 사용하지만 매끄럽고 편리하게 만들고 싶습니다.
$ 7z l ~ / 다운로드 /Tab
결과 목록을 이름이 아닌 날짜별로 정렬하는 방법은 무엇입니까?
나는 현재 특정 디렉토리에 N 개의 가장 최근 파일을 나열하고 파일 이름을 수동으로 명령 줄에 복사하기 위해 특수 스크립트를 사용하지만 매끄럽고 편리하게 만들고 싶습니다.
답변:
때때로 다운로드 디렉토리에서 가장 최근에 다운로드 한 파일을 찾아야하지만 정확한 파일 이름을 모를 수도 있습니다. 내가하는 방법은 다음과 같습니다.
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
.
나는 그것을 위해 다음 단계를 수행 할 것입니다
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
(최근 목록) 이라는 비슷한 스크립트가 있습니다 . 그러나 명시 적으로 호출 한 다음 복사 및 붙여 넣기해야합니다. 탭 완성과 더 통합되기를 원합니다.
bash에서는 예를 들어 다음을 사용하여 가까운 것을 얻을 수 있습니다.
7z l ~/Downloads/
Alt+n
어디 bind
매핑 한 Alt+n다시 쓰는 기능에 READLINE_LINE
변수를.
탭 완성을 대략하기 위해 인수 구문 분석-kludge와 fzf
함께 메뉴를 제시합니다.
https://github.com/WillForan/fuzzy_arg/blob/master/fuzzy_new_complete.bash