저는 Linux에 대해 더 많이 배우려고 노력했으며 오늘 아침 awk 명령에 중점을 두었습니다. 내가 일하려고하는 명령은 아래에있다.AWK 출력을 사용하는 Linux CP
ls -lRt lpftp.* | awk '{print $7, $9}' | mkdir -p $(awk '{print $1}') | ls -lRt lpftp.* | cp $(awk '{print $9, $7}')
기본적으로 디렉토리의 각 파일을 마지막으로 수정 한 파일을 기반으로 하위 디렉토리로 옮깁니다. 이 명령은 먼저 원하는 파일 만 인쇄 한 다음 mkdir을 사용하여 마지막으로 수정 한 날짜를 기준으로 폴더를 만듭니다. 내가 그 후하고 싶은 명령이는 01 폴더에있는 모든 파일을 이동 지금 그러나 같은 관련 디렉토리에 각 파일을 이동하고 모든 디렉토리에 대해 한 번 다음 텍스트
cp: 0653-436 12 is a directory.
Specify -r or -R to copy.
을 출력합니다.
누구든지 내가이 문제를 해결할 수있는 방법을 알고 있습니까? 또는 그것에 대해 갈 수있는 더 좋은 방법이 있다면? do
및 done
사이
왜'mkdir'의 출력을'ls'로 파이핑합니까? 'mkdir'는 (에러 메세지를 제외하고) 출력을 생성하지 않으며'ls'는 입력을 사용하지 않습니다. – Barmar
두 번째 LS 문의 이유는 mkdir 이후에 원래 LS의 파일 이름에 액세스 할 수 없기 때문에 다시 실행하여 해당 목록을 다시 만들었 기 때문입니다. 거기에 더 좋은 방법이 있습니까? – Cronisej
@ 크로니 세이 예, 제 답변을 참조하십시오. – eddiem