เว็บลูกค้าโดนวาง file

shell เข้าไปดู มี directory ประหลาดตัวหนึ่ง c:?ecycler$temp cd เข้าด้วย root ก็ไม่ได้ ลบก็ไม่ได้ จะทำยังไงดีครับ

drwxr-xr-x 3 wanghin wanghin 4096 Mar 2 18:22 c:?ecycler$temp

ส่วน file ประหลาดอื่นๆลบออกได้หมดแล้ว เหลือ directory นี้เท่านั้นครับ
ขอบคุณครับ

ตอนลบ ขึ้น Error อะไร ครับ

1 Like

เวลา cd เข้าไป บอกว่า ไม่ใช่ directory พอสั่งลบ ก็บอกว่า ไม่ใช่ directory ครับ

[root@ns5 public_html]# cd c:?ecycler$temp
-bash: cd: c:?ecycler: No such file or directory
[root@ns5 public_html]# rm -R c:?ecycler$temp
rm: cannot remove `c:?ecycler’: No such file or directory

ถ้า
rm -rf
ล่ะครับพี่ธี ได้ไหม

ลองสร้างชื่อตามนั้นแล้วลบด้วย

rm ได้ปกตินะครับ

เปลี่ยนสัฯลักษณ์พิเศษเป็น * ให้หมดครับ

rm -rfv c:ecyclertemp

หรือไม่ก็ใส่ ’ ’ ครอบไว้

ลองแล้วครับ ไม่ได้

[root@ns5 public_html]# rm -R "c:?ecycler$temp"
rm: cannot remove `c:?ecycler’: No such file or directory

[root@ns5 public_html]# rm -R ‘c:?ecycler$temp’
rm: cannot remove `c:?ecycler$temp’: No such file or directory

[root@ns5 public_html]# mv c:?ecycler$temp c**ecycler*temp
mv: cannot stat `c:?ecycler’: No such file or directory

ไม่ได้เช่นกันครับ

ลองอันนี้ได้มั้ยครับพี่

ls -1 -R -i | grep -a “[^A-Za-z0-9_.’:@ /-]” | while read f; do inode=$(echo “$f” | cut -d ’ ’ -f 1); find -inum “$inode” -delete; done

ลองแบบไม่รู้ว่าคือะไร 555 แต่ลองแล้วเป็นแบบนี้ครับ

[root@ns5 public_html]# ls -1 -R -i | grep -a “[^A-Za-z0-9_.’:@ /-]” | while read f; do inode=$(echo “$f” | cut -d ’ ’ -f 1); find -inum “$inode” -delete; done
find: cannot delete ./c:\recycler$temp': Directory not empty find: invalid argument-delete’ to -inum' find: invalid argument-delete’ to -inum' find: cannot delete./images/\323\251\363\323\251\347\323\251\350\323\251\327’: Directory not empty
find: cannot delete ./images/\323\251\370\323\251\355\323\251\374\323\251\366': Directory not empty find: cannot delete./images/\323\251\374\323\251\352\323\251\374\323\251\372\323\251\372\323\251\355’: Directory not empty
find: cannot delete ./images/prapa/\323\251\363\323\251\347\323\251\350\323\251\327': Directory not empty find: invalid argument-delete’ to -inum' find: invalid argument-delete’ to -inum' find: invalid argument-delete’ to -inum' find: invalid argument-delete’ to `-inum’

ลองอีกทีนะครับ
หาก่อนว่าไฟล์นี้ inode number อะไร

ls -li

จากนั้นสั่งลบ inode number มันครับ

find . -inum 99999 -mount -exec rm -Rf {} ;

แทนที่ 99999 ด้วยเลข inode number ของมันครับ

ผลครับ

[root@ns5 public_html]# ls -li
total 144

17359014 drwxr-xr-x 3 wanghin wanghin 4096 Mar 2 18:22 c:?ecycler$temp

[root@ns5 public_html]# find . -inum 17359014 -mount -exec rm -Rf {} ;
find: warning: you have specified the -mount option after a non-option argument -inum, but options are not positional (-mount affects tests specified before it as well as those specified after it). Please specify options before other arguments.

find: `./c:\recycler$temp’: No such file or directory

ลองอีกทีได้มั้ยครับ

find . -inum 17359014 -exec rm -rf {} ;

1 Like

ลองแล้วครับ หายวับไปกับตา
ค้นหา -inum แล้วก็สั่งลบ

ขอบคุณมากครับ ต้องเก็บคำสั่งไว้ศึกษา

1 Like

ชื่อไฟล์มันมี ? กับ $ ทำให้สั่งผ่าน command แล้วไม่เจอ เพราะมันไปตีค่า ? กับ $
ปกติผมจะใช้วิธีกด tab ให้มันค้นชื่อให้ มันจะใส่ " กับ \ ให้เอง
ถ้ายังไม่ได้ ก็ใช้ find ช่วยแบบข้างบน

ทดลองใช้ tab แทนการพิมพ์เข้าไปเองแล้วครับไม่ได้

ใช้ rm -rf .\c: แล้วกด tab ครับ