
ls를 사용할 때마다 부작용으로 현재 날짜와 시간을 표시하고 싶습니다 ls
. 명령의 기능을 변경하려면 어떻게 해야 합니까?
답변1
한 가지 옵션 은 를 호출하는 별칭을 만드는 것입니다 date
. alias ls='date;ls'
예는 다음과 같습니다.
$ touch a b c
$ ls
a b c
$ alias ls='date;ls'
$ ls
Mon Oct 14 10:37:29 BST 2013
a b c
답변2
쉘에 대한 PS1 변수를 정의하십시오. 이곳은 쉘에서 원하는 모든 것을 볼 수 있는 곳입니다.
예:
export PS1="\t [\u@\h \W]\$ "
12:01:58 [user@host ~]$ ls /etc/fstab
/etc/fstab
12:02:00 [user@host ~]$ ls /etc/motd
/etc/motd
답변3
왜 이런 일을 하려는지 이해가 안 됩니다. 실제로 달성하려는 목표를 공유하면 더 나은 솔루션을 찾는 데 도움이 될 수 있습니다.
제가 개인적으로 하는 일은 PS1 라인을 편집하는 것입니다. 내 PS1 라인은 프롬프트에 다음과 같은 많은 정보를 표시합니다.
보시다시피 날짜 및 시간 외에도 풍부한 정보가 표시됩니다. PS1에서 날짜와 시간을 표시하려면
\@
시간 표시용과 \d
날짜 표시용을 추가하세요.
귀하의 질문에 명시적으로 대답하면 .bashrc
. 이렇게 하려면 다음 줄을 다음 줄에 추가하세요 ~/.bashrc
.
alias ls='date && ls'
명령 작동 방식을 변경하고 싶지 않다고 말씀하셨습니다. 여기서는 반대처럼 보일 수도 있지만 실제로 명령이 변경되지 않는다는 사실을 이해하려면 별칭이 어떻게 작동하는지 이해해야 합니다 ls
. 스크립트 내에서 ls를 실행하면 하위 쉘에서 명령이 호출되어 상위 쉘이 별칭 규칙을 적용하지 못하게 됩니다. 따라서 ls
출력 형식이 변경되어도 스크립트 호출이 중단되지 않습니다.
편집: 일부 사람들은 PS1 라인 자체에 관심이 있을 수 있으므로 관련 세부 정보를 찾을 수 있습니다.여기. 주의할 점은 용량이 매우 크기 때문에 수천 개의 파일이 포함된 디렉토리가 있는 경우 쉘 성능이 눈에 띄게 지연될 수 있다는 점입니다.