ฉันต้องการลบเนื้อหาของโฟลเดอร์โดยไม่ลบโฟลเดอร์: ไฟล์ทั้งหมดและโฟลเดอร์ย่อยทั้งหมดที่มีไฟล์ย่อย สิ่งนี้จะไม่ลบอะไรเลย
sudo rm -rf /folder1/*
ทำไมจะไม่ล่ะ? จะทำให้มันใช้งานได้อย่างไร
ฉันต้องการลบเนื้อหาของโฟลเดอร์โดยไม่ลบโฟลเดอร์: ไฟล์ทั้งหมดและโฟลเดอร์ย่อยทั้งหมดที่มีไฟล์ย่อย สิ่งนี้จะไม่ลบอะไรเลย
sudo rm -rf /folder1/*
ทำไมจะไม่ล่ะ? จะทำให้มันใช้งานได้อย่างไร
คำตอบ:
นี่คือfolder1
รากโดยตรงจริงๆ/
เหรอ? คุณต้องใช้เส้นทางสัมพัทธ์หรือเส้นทางสัมบูรณ์:
sudo rm -rf folder1/*
sudo rm -rf /full/path/to/folder1/*
จากนั้นคุณต้องจำไว้ว่าตัวแทนจะถูกจัดการก่อน sudo
หากผู้ใช้ไม่มีสิทธิ์ในการอ่านเนื้อหาของfolder1
wildcard จะไม่ส่งคืนอะไรเลย คุณสามารถทดสอบด้วย
sudo echo folder1/*
ในกรณีนั้นคุณอาจ
sudo bash
rm -rf folder1/*
คุณบอกว่า sudo "rm -rf / folder1 / *"ไม่ทำงานสำหรับคุณมันเกิดขึ้นถ้าคุณมีไฟล์หลายพันไฟล์ในไดเรกทอรีไม่ว่าจะนานเกินไปหรือกระบวนการนั้นจะพูดว่ารายการอาร์กิวเมนต์ยาวเกินไปในกรณีนี้คุณสามารถลองได้ คำสั่งด้านล่าง
cd แรกไปยังไดเรกทอรีที่คุณต้องการลบไฟล์cd / โฟลเดอร์ /
/ bin / ls -A | xargs rm -rf
ซึ่งจะลบไฟล์และไดเรกทอรีทั้งหมดแม้แต่ไฟล์ที่ซ่อนอยู่ที่ขึ้นต้นด้วยจุดยกเว้นไฟล์พิเศษ และ .. ไดเรกทอรี คุณไม่ต้องการลบ และ .. (เป็นไดเรกทอรีปัจจุบันและไดเรกทอรีหลักตามลำดับ)