Ngayon, magpapakita kami ng paraan sa iyo kung saan mo magagawa tanggalin ang mga file na mas matanda sa 'X' na araw. Ipagpalagay na gusto mong tanggalin ang mga file na mas matanda sa 7 araw pagkatapos ay tutulungan ka ng artikulong ito na gawin iyon. Ang find utility ay nagpapahintulot sa iyo na ipasa ang ilang mga kawili-wiling argumento, kabilang ang isa upang magsagawa ng isa pang command sa bawat file. Upang malaman kung anong mga file ang mas luma kaysa sa isang tiyak na bilang ng mga araw, gagamitin namin ito maghanap ng utility at pagkatapos ay gamitin ang rm command upang tanggalin ang mga ito. Ang command syntax ay ang mga sumusunod:
hanapin /path/to/files* -mtime +5 -exec rm {} \;
Hindi kami mananagot para sa anumang pagkawala ng data na maaaring mangyari. Inirerekomenda ka namin sa ilista ang mga file at suriin bago tanggalin ang mga ito, sa pamamagitan ng pagpapatakbo ng sumusunod na utos:
hanapin /path/to/files* -mtime +5 -exec ls {} \;
tandaan: May mga puwang sa pagitan ng rm, {}, at \;

Paliwanag ng Command:
Ang unang argumento sa utos sa itaas ay ang landas sa mga file. Ang pangalawang argumento ay -mtime ay ginagamit upang tukuyin kung ilang araw ang edad ng file. Kung maglalagay ka ng +5, makakahanap ito ng mga file na mas matanda sa limang araw. Ang huling argumento ay -exec ay nagbibigay-daan sa iyo upang pumasa sa isang utos tulad ng rm. Ang {} \; sa dulo ay kinakailangan upang wakasan ang utos.
Dapat itong gumana sa halos lahat ng bersyon ng Linux tulad ng Ubuntu, Fedora, Red Hat, Suse, atbp. Kung nahaharap ka sa anumang problema na tila imposible dito, ipaalam sa amin sa mga komento sa ibaba.
Ginamit ko ang trick na ito! Kahanga-hangang trick! Salamat sa pagbabahagi ng napakagandang trick :)
Oo ginamit ko ang cammand na ito sa sesyon ng pagsasanay ng RHCE.
find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld
alias 5DayLs="find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld"
Pinagsama-sama ang isang bagay mula sa iyong mungkahi dito. Isang paraan para sa paggawa ng plain text file na listahan ng mga file na limang araw na ang edad. Mas madaling magtago ng record para sa pagtingin bago mag-alis ng mga file. Ang mga gumagamit ay maaaring gumamit ng cat, vi, vim, gedit, emacs upang makita kung ano ang maaari nilang itapon.
find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld
Ang pagsira nito ./ ay ang kasalukuyang direktoryo. Hanapin ang paggamit ng kasalukuyang direktoryo na kadalasang mas ligtas kaysa sa paggamit ng / kanyon. >> idinaragdag sa isang file, kung wala ito, malilikha ito.
Kahit na naisip na maaaring ito ay kapaki-pakinabang bilang alyas. Marahil ay maaari/dapat itong i-port muna sa isang shell script. Ang pagiging tamad, late dito.
Salamat! Ginamit ko ang syntax na ito sa isang cron job.
Ang magandang tip upang magtanggal ng mga file na mas luma sa ilang partikular na araw. Gayunpaman, kung mahaba ang iyong listahan ng argumento (sa tingin ko ang max ay 65535 o isang bagay sa mga linyang iyon) hindi ito gagana.
Mayroon akong pasadyang script na gumagawa ng trabaho:
#!/bin/bash
cd /directory-to-be-checked
allfiles=`ls`
NOW=`date +%s`
for filename in $allfiles
do
OLD=`stat -c %Z $filename`
if [ "$2" == "" ]
then
DELAY=86400
else
let "DELAY=$2 * 86400"
fi
AGE=`expr $NOW - $OLD`
#echo "Delay is $DELAY and Age is $AGE"
#exit 0
if [ $AGE -gt $DELAY ]
then
#echo "File $filename is $AGE"
fstamp=`ls -l $filename`
if [ "$1" == "DEL" ]
then
echo "Deleting file $filename"
`rm -f $filename`
else
echo "$fstamp"
fi
fi
Mag-donate.
Salamat sa pagbibigay ng script.
Maligayang pagdating Namase.
Tawagan ang script tulad nito:
./scriptname.sh DEL numDays
Kung hindi tinukoy ang numDays, gagamit ito ng minimum na 1 kaya siguraduhing tukuyin mo ang numDays. Hindi ako mananagot para sa kung paano mo ginagamit ang script na ito at para sa anumang pagkawala ng data na maaaring mangyari.
kung gusto kong Tanggalin ang Dirs at mga file mula sa 30 araw na gulang sa aking remote na makina at isang bagay na hindi kasama ang 1 at 2 o 3 dirs at kaya paano ko ito magagawa ..?? Mangyaring ibahagi ang iyong mga saloobin.
Ginagamit ko ang pamamaraan na ito ay lubhang kapaki-pakinabang para sa pagtanggal ng trc file sa oracle
Salamat sa pagbabahagi ng kapaki-pakinabang na utos na ito para sa lahat ng mga gumagamit. Madali naming matatanggal ang mga mas lumang file sa Linux. Hinahanap ko rin ito at sa wakas nakuha ko ang solusyon dito.
Nakakakuha ba ito ng mga file sa mga sub-directory din? Kung gayon, paano ko ito gagawin para hindi?
hanapin /home/greg/logs -type f -mtime +5 -exec rm {} ;
Hinanap ko ang ganoong utos. Nakakatulong talaga. At salamat sa pagbabahagi ng script, Vivian.