ls가 현재 날짜와 시간을 표시하도록 만들기

ls가 현재 날짜와 시간을 표시하도록 만들기

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 라인 보시다시피 날짜 및 시간 외에도 풍부한 정보가 표시됩니다. PS1에서 날짜와 시간을 표시하려면 \@시간 표시용과 \d날짜 표시용을 추가하세요.

귀하의 질문에 명시적으로 대답하면 .bashrc. 이렇게 하려면 다음 줄을 다음 줄에 추가하세요 ~/.bashrc.

alias ls='date && ls'

명령 작동 방식을 변경하고 싶지 않다고 말씀하셨습니다. 여기서는 반대처럼 보일 수도 있지만 실제로 명령이 변경되지 않는다는 사실을 이해하려면 별칭이 어떻게 작동하는지 이해해야 합니다 ls. 스크립트 내에서 ls를 실행하면 하위 쉘에서 명령이 호출되어 상위 쉘이 별칭 규칙을 적용하지 못하게 됩니다. 따라서 ls출력 형식이 변경되어도 스크립트 호출이 중단되지 않습니다.

편집: 일부 사람들은 PS1 라인 자체에 관심이 있을 수 있으므로 관련 세부 정보를 찾을 수 있습니다.여기. 주의할 점은 용량이 매우 크기 때문에 수천 개의 파일이 포함된 디렉토리가 있는 경우 쉘 성능이 눈에 띄게 지연될 수 있다는 점입니다.

관련 정보