다음 논리에 대한 프로그램을 작성하고 싶습니다.
- 폴더에 있는 파일 이름 가져오기
- 각 파일에 대해 다음을 수행합니다.
- 파일 이름 인쇄
- 파일을 다른 새 폴더로 이동합니다(
dd_mm_yy
동일한 이름 형식).
답변1
전체 경로에서 파일 이름을 얻으려면 다음을 사용할 수 있습니다.기본 이름:
$ basename /home/cuonglm/test.pl
test.pl
그래서 당신은 이것을 할 수 있습니다 :
for f in *; do
filename="$(basename -- "$f")"
# Do sftuff here
done
답변2
귀하의 질문이 불분명합니다. 나는 당신이 대상 파일 이름을 파일 수정 시간으로 만들고 파일의 원래 이름은 신경 쓰지 않는다고 가정합니다. 오류가 있으면 정정해 주세요.
배쉬 스크립트. 용법:./script.sh original_dir dest_dir
#!/bin/bash
find "$1" -maxdepth 1 -exec bash -c '
echo "$1"
export LANG=C
name=$(stat -c "%y" . | sed -r "s/..(..)-(..)-(..).*/\3-\2-\1/")
mv -iT $0 '"$1"'/"$name"' "{}" \;