দুর্ঘটনাক্রমে "~" (টিল্ড) নামের ডিরেক্টরি তৈরি করা হয়েছে


47

আমি আক্ষরিক নামে একটি ডিরেক্টরি তৈরি করতে পরিচালিত ~

(স্পষ্টতই, পাইথন এটি os.mkdir('~/something')করে)

আমি আমার বাড়ির আটকানো ছাড়াই কীভাবে এটি সরিয়ে ফেলব?

এছাড়াও, যদি এটি সাহায্য করে তবে আমার /homeপৃথক পার্টিশন রয়েছে। এবং সদৃশটি ~( বাস্তব ) এ অবস্থিত ~


51
বাধ্যতামূলক এক্সকেসিডি । ঠিক আছে, আমি এটি বাধ্যতামূলক হওয়ার বিষয়ে মিথ্যা বলতে পারি। এবং একটি এক্সকেসিডি হচ্ছে।
জেসভিন জোস

30
ভবিষ্যতে, আপনি জিজ্ঞাসা করেননি পাইথন প্রশ্নের উত্তর দিতে, ব্যবহার করুন os.mkdir(os.path.expanduser('~/something'))
ম্যাট নর্ডহফ

8
... শুধু কৌতূহলের জন্য, যেহেতু আপনি পাইথনে ডিরেক্টরিটি তৈরি করেছিলেন আপনি কি os.rmdir('~/something')এটি মুছে ফেলতে ভাবেননি?
বাকুরিউ

@Bakuriu অবশেষে, আমি করেনি চিত্রে যে
UniversallyUniqueID

উত্তর:


73

Escape ~সঙ্গে \~বা একক কোট ব্যবহার '~'। তাই আপনি যা করতে পারেন

rmdir ~/\~

অথবা

cd ~ ; rmdir '~'

43
আপনি যদি এমন কিছু মুছে ফেলার বিষয়ে উদ্বিগ্ন হন তবে আপনি প্রথমে অ-ধ্বংসাত্মক কিছু করতে পারেন যেমন: এমভি 'normal' সাধারণ নাম, তারপরে ডিরেক্টরিটির সাধারণ নামটি সরিয়ে ফেলুন।
ক্রিস জেফারসন

53
rmdirঅ-ধ্বংসাত্মক। rmdirকেবলমাত্র ডিরেক্টরিগুলি খালি রয়েছে তা মুছে ফেলবে, সুতরাং আপনি যদি rmdirকোনও ডিরেক্টরিতে এর কিছুতে চেষ্টা করেন তবে এটি rmdirমুছে ফেলতে অস্বীকার করবেন।
হিটেকম্পিউটারজেক

3
এমনকি আপনার এই কমান্ডগুলির প্রথমটিতে টিলড থেকে বাঁচার দরকার নেই - ~কেবল শেল "শব্দ" এর শুরুতে বিশেষভাবে প্রসারিত হয়।
হেনিং মাখোলম

1
আপনি এমনকি করতে পারেন rmdir *। যেহেতু এটি কেবল খালি ডিরেক্টরিগুলি সরিয়ে দেয় তাই আপনার এটি ধ্বংসাত্মক কিছু করার বিষয়ে চিন্তা করার দরকার নেই।
বেনুবার্ড

@ ক্রিসজেফারসন: আপনি যদি প্রথমে আপনার কমান্ডটি পরীক্ষা করতে চান ls -dতবে এটি ডিরেক্টরি বা ফাইলটি আপনি চান তা তালিকাবদ্ধ করে কিনা তা ব্যবহার করুন। মত প্রভাব সঙ্গে কিছু প্রয়োজন নেই mv
পিটার কর্ডেস

42

পাইথন যা দেয়, অজগর তা কেড়ে নেয়:

$ python -c 'import os; os.makedirs("~/foo")'; tree; python -c 'import os; os.removedirs("~/foo")'; tree
.
└── ~
    └── foo

2 directories, 0 files
.

0 directories, 0 files

যদি আপনি তা করেন তবে আপনি os.mkdirএটিকে পূর্বাবস্থায় ফেলাতে পারেন os.rmdir(এবং একইভাবে os.makedirsএবং এর জন্য os.removedirs)।


36

আপনি হয় ডিরেক্টরটির নামটি এ জাতীয় ব্যাকস্ল্যাশ ব্যবহার করে পালাতে পারবেন (ধরে নিবেন যে আপনি মুছতে চান তার মূল ডিরেক্টরিতে আপনি পরিচালনা করছেন):

rmdir \~

বা আপনি বর্তমান ডিরেক্টরি হিসাবে বিন্দুর সাথে আপেক্ষিক পাথগুলি ব্যবহার করতে পারেন (প্যারেন্ট ডিরেক্টরিতে থাকা অবস্থায়ও):

rmdir ./~

অথবা আপনি সম্পূর্ণ পরম পথ ব্যবহার করতে পারেন:

rmdir /home/USERNAME/~

এবং কোনও উদ্বেগ নেই, rmdirকেবল খালি ডিরেক্টরিগুলি সরাতে পারে। যদি আপনি দুর্ঘটনাক্রমে কমান্ডটি ভুল টাইপ করেন এবং পথটি আপনার আসল হোম ডিরেক্টরিতে মূল্যায়ন করে তবে এটি বিপদে পড়বে না কারণ এতে ফাইল রয়েছে:

$ rmdir directory_with_files
rmdir: failed to remove ‘directory_with_files’: Directory not empty

আমি আপেক্ষিক পথ বিকল্প পছন্দ করি। এটা তোলে ম্যাপ অসম্ভব হওয়া উচিত ./~করতে ~/, যা তালিকা আপনি বর্তমানে করছি হোক না কেন। পূর্ণ পথটি সঙ্গে অনুরূপ অবস্থা।
এমবিরাডলি

2

findকমান্ড যেমন অলৌকিক কাজ করতে পারে। আদেশ

ls -i

আপনাকে ফাইল বা ডিরেক্টরিতে ইনোড নম্বর দেবে। তারপরে আপনি এ findজাতীয় ফাইল বা ডিরেক্টরি মুছতে ব্যবহার করতে পারেন :

find . -inum <inode-number> -delete #for a file

এবং

find . -inum <inode-number> -exec rm -rf {}\; #for directories

1

কি করা উচিত ছিল

আপনার home=os.path.expanduser("~")প্রথমে এবং তারপরে পারফর্ম করা উচিত ছিল os.path.join(home,"something")~পাইথন টেক্সট হিসেবে বিবেচিত হয় এবং প্রসারিত করে না এটা না bashবা অন্যান্য শাঁস।

$ python -c 'import os;home=os.path.expanduser("~"); os.mkdir(os.path.join(home,"something"))'                                                                                          

$ ls -ld ~/something
drwxrwxr-x 2 xieerqi xieerqi 4096 7月  12 21:00 /home/xieerqi/something/

এটি থেকে কীভাবে মুক্তি পাবেন

ইতিমধ্যে উল্লিখিত পদ্ধতিগুলি ছাড়াও, আমরা ~অক্ষরের Ascii টেবিল থেকে হেক্স মানটি ব্যবহার করতে পারি , যা ~কমান্ড লাইনের ব্যবহারকারীর হোম ডিরেক্টরিতে প্রকৃতপক্ষে প্রসারিত হয় না (যদি আপনি ভাবছেন, যখন টিল্ড শুরুর দিকে প্রদর্শিত হবে) একটি শব্দ, এটা ব্যবহারকারীর হোম ডিরেক্টরিতে বিস্তৃতি ঘটে। তুলনা ls ~এবং ls $'\x7e')।

এটি কীভাবে কাজ করবে তা এখানে:

# Make the directory
$ mkdir ./~                                                                                                                                                                             
$ stat ./$'\x7e'                                                                                                                                                                        
  File: './~'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d  Inode: 5768019     Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 1000/ xieerqi)   Gid: ( 1000/ xieerqi)
Access: 2017-07-12 21:05:31.382828424 -0600
Modify: 2017-07-12 21:05:31.382828424 -0600
Change: 2017-07-12 21:05:31.382828424 -0600
 Birth: -

# and remove it 
$ rmdir ./$'\x7e'                                                                                                                                                                       
$ ls $'\x7e'
ls: cannot access '~': No such file or directory
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.