2012-04-23 2 views
1

상당수의 폴더 (확장자가없는 1105, 1106, 5231 등)가 상당수 폴더에 분산되어 있습니다.여러 디렉토리에 확장자가없는 파일을 하나의 디렉토리로 이동

/users/me/collection/1105/1455, /users/me/collection/1106/1466, /users/me/collection/1110/1470, 등 등

내가하고 싶은 것은 서브 디렉토리에있는 모든 파일을 이동하는 빠른 방법을 찾는 것입니다 (즉, 1455을 : 즉, 그렇게 같은 천 파일입니다 , 1466, 1470 등)을 하나의 단일 디렉토리 (즉, /users/me/collection-all/)로 변환하십시오.

솔직히 말하면, 확장 기능이 없어서 나를 던지고 있습니다. 나는 파일들과 함께 find 디렉토리를 유지하는 것처럼 보입니다 ... 그들은 실제로 모든 PDF이지만, 확장자가 있습니다.

+0

당신이 말하는 파일이있는 디렉토리 이외에 어떤 것이 있습니까? – Jasper

+0

@Jasper 아니요, 서브 디렉토리의 디렉토리에 불과합니다. 각 디렉토리에는 확장자가없는 파일이 하나씩 있습니다. –

답변

1

어때요?

mv /users/me/collection/*/* /users/me/collection-all/ 
4

는 사실 대답은 매우 간단합니다 :

당신이 디렉토리을 찾아 제외 할 수 있습니다 : "타입은 D"

cp ` find <your directory tree base> ! -type d` <your destination directory> 

자연적 형태의 결과를 제외 할 것이다 "디렉토리 ".

HTH

1

내 두 센트

cd /users/collections/me 
find . -type f -exec mv {} /users/me/collection-all/ \; 
1

당신이 시도 할 수 있습니다 :

#!/bin/bash 

IFS_BACKUP=$IFS 
IFS=$'\n\t' 

for i in $(find $source_directory -type f -iname "*" -print) 
do 
    mv -nv "$i" "$target_directory" 
done 

IFS=$IFS_BACKUP 

exit 

그냥 적절한 경로를 변수 $source_directory$target_directory를 교체해야합니다.

관련 문제