ลบไฟล์ทั้งหมดที่เริ่มต้นด้วยเครื่องหมายคำถาม


23

ฉันมีโฟลเดอร์ที่มีไฟล์ประมาณ 4k ไฟล์เหล่านี้บางไฟล์เริ่มต้นด้วย aa ?หรือ!ตัวอักษร ฉันต้องการลบ แต่ไม่สามารถหานิพจน์ที่จะทำ:

rm -f ./?*

เพียงลบทุกอย่าง ฉันสามารถใช้grepls และไปป์xargsและย้ายไฟล์ไปยังโฟลเดอร์อื่น แต่ฉันหวังว่าจะมีวิธีที่เหมาะสมในการทำเช่นนี้ ต้องการความช่วยเหลือทั้งใน?และ!ไฟล์

คำตอบ:


26

ไม่จำเป็นต้องมีสิ่งแฟนซีใด ๆ เพียงหลบหนี?เพื่อที่จะไม่ถือว่าเป็นส่วนหนึ่งของรูปกลม:

rm -f ./\?*

ใช้ได้กับ!:

rm -f ./\!*

หรือในบัดดล:

rm -f ./{\?,\!}*

ปรับปรุง

เพิ่งสังเกตเห็นว่าคุณถูกแนะนำเพื่อการส่งออกของgrep lsฉันต้องการที่จะนำความสนใจของคุณไปยังความจริงที่ว่าคุณไม่ควรแยกผลลัพธ์ของ ls


4
@recluze ไม่ใช่คนโง่ มันยังห่างไกลจากวิธีการที่ชัดเจนถ้าคุณไม่รู้เกี่ยวกับสัญลักษณ์แทนการหลบหนี
CVn

@recluze ยังคงรู้สึกโง่หลังจากโหวต 5 คะแนนสำหรับคำถามของคุณ? :) โดยวิธีการดูคำตอบที่ปรับปรุง
โจเซฟอาร์

ขอบคุณและขอบคุณ :) ... ได้ตระหนักถึงปัญหาในการแสดงผล ls แต่ไฟล์ของฉันมีรูปแบบเฉพาะที่ฉันสามารถไว้ใจได้ แต่ดีที่จะรู้ :)
recluze

13

ในกรณีของฉันตัวละครไม่ใช่เครื่องหมายคำถามจริงๆ แต่ตัวอักษร unicode ที่เห็นได้ชัดไม่สามารถแสดงในคอนโซลของฉันได้

ใช้rm -i *งานได้สำหรับฉัน หากคุณไม่ต้องการที่จะทำเช่นนี้คุณยังสามารถลบโดย inode ตามที่อธิบายไว้ในhttp://www.cyberciti.biz/tips/delete-remove-files-with-inode-number.html

ในการค้นหา inode ให้ใช้:

ls -il

จากนั้นทำ:

find . -inum [inode-number] -exec rm -i {} \;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.