리눅스 현재 경로의 디렉터리로 모든 파일 옮기기

아래와 같은 상황에서 해당 경로에 있는 모든 파일을 directory1로 옮기고 싶으면 어떻게 해야 할까.

[user1@localhost folder]$ ll
total 0
-rw-rw-r--. 1 user1 user1 0 Jan 16 23:34 another_file1
-rw-rw-r--. 1 user1 user1 0 Jan 16 23:34 another_file2
-rw-rw-r--. 1 user1 user1 0 Jan 16 23:34 another_file3
-rw-rw-r--. 1 user1 user1 0 Jan 16 23:34 another_file4
-rw-rw-r--. 1 user1 user1 0 Jan 16 23:34 another_file5
drwxrwxr-x. 2 user1 user1 6 Jan 16 23:59 directory1
drwxrwxr-x. 2 user1 user1 6 Jan 16 23:39 directory2
drwxrwxr-x. 2 user1 user1 6 Jan 16 23:39 directory3
drwxrwxr-x. 2 user1 user1 6 Jan 16 23:39 directory4
-rw-rw-r--. 1 user1 user1 0 Jan 16 23:34 file1
-rw-rw-r--. 1 user1 user1 0 Jan 16 23:34 file2
-rw-rw-r--. 1 user1 user1 0 Jan 16 23:34 file3
-rw-rw-r--. 1 user1 user1 0 Jan 16 23:34 file4
-rw-rw-r--. 1 user1 user1 0 Jan 16 23:34 file5

파일 이동은 mv를 사용하면 되는데 잠시 고민이 될 수 있다. 옮길 경로인 directory1이 같은 경로에 있기 때문이다.

그래서

mv file* another* directory1

이런식으로 패턴을 이용해서 넣어야하나… 이렇게하면 directory2, directory3, directory4 같은 건 어떻게 옮기나 이런 생각이 들 수도 있는데

그냥 단순하게 directory1을 포함한 모든 파일을 directory1로 옮기면 된다.

[user1@localhost folder]$ mv * directory1
mv: cannot move ‘directory1’ to a subdirectory of itself, ‘directory1/directory1’

그럼 이렇게 directory1을 directory1로 옮길 수는 없다는 에러를 뱉기 때문에 역시 문제가 있는 건가 싶지만 별 문제는 없다.

말그대로 모든 파일을 옮기는 중 directory1도 옮기려는 시도가 있었기 때문에 에러를 출력하는 것인데 그 뿐이다.

[user1@localhost folder]$ ls
directory1
[user1@localhost folder]$ cd directory1/
[user1@localhost directory1]$ ls
another_file1  another_file3  another_file5  directory3  file1  file3  file5
another_file2  another_file4  directory2     directory4  file2  file4

결론적으로는 원하는 대로 파일이 모두 옮겨진다.

댓글 남기기