2010-05-02 2 views
2

매일 다양한 파일/폴더가 들어있어 다양한 폴더로 자동 정렬됩니다. 내가 자동으로 이러한 파일/폴더를 찾아 "들어오는"폴더 내에서 그들 모두에게 심볼릭 링크를 만드는 방법을 찾고 있어요. 파일의 나이를 검색하면 파일을 찾는 데 충분하지만 나이와 소유자를 검색하는 것이 이상적입니다. 그런 다음 파일/폴더가 특정 연령 (예 ​​: 5 일)에 도달하도록 연결되면 "수신"폴더에서 자동으로 심볼릭 링크를 제거하십시오. cron으로 실행할 수있는 간단한 쉘 또는 파이썬 스크립트로 할 수 있습니까? 감사!심볼릭 링크 파일이 X age보다 새로운 파일 이름 일때 심볼릭 링크를 제거합니까?

답변

2

incron을 사용하여 심볼릭 링크를 만든 다음 cron에서 find -L을 사용하여이를 중단하십시오.

1

없음 아주 당신이 여기에 심볼릭 링크-하지만 원하는 첫 번째 샷입니다 :

find /incoming -mtime -5 -user nr -exec ln -s '{}' /usr/local/symlinks ';' 

nr 소유 /incoming 미만 5 일 이전에 무엇을 찾아 /usr/local/symlinks로 연결합니다. 불행히도 ln에는 이미 존재하는 것을 무시할 수있는 좋은 옵션이 없습니다. 당신은 사물을 연결하는 스크립트를 작성하는 것이 더 낫다, 동시에 당신은 훨씬 더 효율적으로 일을 할 수 있습니다 : 당신도 더 싶은 경우 mylink

#!/bin/bash 
for i 
do 
    link=/usr/local/symlinks/"$(basename "$i")" 
    [[ -L "$link" ]] || ln -s "$i" /usr/local/symlinks 
done 

있다

find /incoming -mtime -5 -user nr -print0 | xargs -0 mylink 

효율적으로 배열에 링크 될 파일 목록을 누적 할 수 있으며 하나의 ln 명령으로 모두 링크하는 것보다 많은 표기법을 사용하므로 걱정하지 않으셔도됩니다.

find -L /usr/local/symlinks -mtime +5 -user nr -exec rm '{}' ';' 

하거나 다시 사용할 수 xargs :

find -L /usr/local/symlinks -mtime +5 -user nr -print0 | xargs -0 rm -f 

5 일 이상 파일을 그 지점을 심볼릭 링크를 제거하려면