නාමාවලියකට සිම්ලින්ක් ඉවත් කරන්න


1091

මට වැදගත් නාමාවලියකට සමමුහුර්තයක් ඇත. ඩිරෙක්ටරිය පිටුපස තබා ගනිමින් මට එම සිම්ලින්ක් ඉවත් කිරීමට අවශ්‍යයි.

මම උත්සාහ rmකර ආපසු යන්නෙමි rm: cannot remove 'foo'.
මම උත්සාහ rmdirකර ආපසු rmdir: failed to remove 'foo': Directory not empty
ආවා, පසුව මම ඉදිරියට ගියෙමි rm -f, rm -rfසහsudo rm -rf

ඊට පස්සේ මම මගේ උපස්ථ සොයා ගැනීමට ගියා.

ස්නානය කරන ජලය සමඟ දරුවා ඉවතට විසි කිරීමත් සමඟ සිම්ලින්ක් ඉවත් කිරීමට ක්‍රමයක් තිබේද?


74
ලිනක්ස් ආශ්‍රිත ප්‍රශ්න ඇසීමේ වරද කුමක්ද? අවසන් වරට මා පරීක්ෂා කළ විට, තොග පිටාර ගැලීම විශේෂිත නොවේ
ජෙරමි කැන්ට්‍රෙල්

6
මෙම ප්‍රශ්නය සුපිරි පරිශීලකයාට හෝ ලිනක්ස් ආශ්‍රිත කොටස් හුවමාරුවකට වඩා සුදුසු නොවේද?
mwfearnley

46
wmwfearnley එය එසේ වනු ඇත, නමුත් දිනය පරීක්ෂා කරන්න. සුපර් පරිශීලක යනු එවකට පැවති දෙයක් නොවේ. එය වරාය කර ඇත, එබැවින් එය ද එහි ඇත. එය තවමත් මෙහි ඇත්තේ මන්දැයි නිශ්චිතවම කිව නොහැක, නමුත් එය මගේ ඉහළම ලකුණු ලබා ගැනීමේ ප්‍රශ්නය වන අතර මම තෑගි කර්මය කටේ නොබලමි.
මැතිව් ස්කවුටන්

16
rm -r link/
ඉඟිය

34
Then I went to find my back-ups- ඒකෙන් මට කරදරයක් වුණා.
frakman1

Answers:


1316
# this works:
rm foo
# versus this, which doesn't:
rm foo/

මූලික වශයෙන්, ඔබට එය පැවසිය යුත්තේ ගොනුවක් මකා දැමීමට මිස නාමාවලියක් මකා දැමීමට නොවේ . සී පුස්තකාලය සෑම කෙනෙකුටම සලකන ආකාරයෙහි වෙනස්කම් නිසා rmසහ rmdirපවතින වෙනස මම විශ්වාස කරමි .

ඕනෑම අවස්ථාවක, පළමුවැන්නා වැඩ කළ යුතු අතර දෙවැන්න foo නාමාවලියක් වීම ගැන පැමිණිලි කළ යුතුය.

එය ඉහත පරිදි ක්‍රියා නොකරන්නේ නම්, ඔබගේ අවසරයන් පරීක්ෂා කරන්න. ලිපිගොනු ඉවත් කිරීම සඳහා අඩංගු ඩිරෙක්ටරියට ලිඛිත අවසරයක් අවශ්‍ය වේ.


123
ඔව්. ඒක තේරුමක් ඇති. මම කිසි විටෙකත් foo ටයිප් නොකළෙමි, මම f <tab> ටයිප් කර මා වෙනුවෙන් / පිරවූ බැෂ්.
මැතිව් ස්කවුටන්

6
මෙය සැමවිටම ක්‍රියාත්මක නොවේ. rm -rf folderNameසිම්ලින්ක් ඉවත් කිරීම සඳහා ඇතැම් විට ඔබ ධාවනය කළ යුතුය . ඇමේසන් ලිනක්ස් උදාහරණයක් ලෙස යම් යම් තත්වයන් යටතේ හැසිරේ.
සන්නාම පිටපත

18
3 r3mus: ඔබට සිම්ලින්ක් -rසමඟ භාවිතා නොකරන්න . -fසමහර විට ගොනු අවසරයන් ඉක්මවා යාම හැරෙන්නට අවශ්‍ය නොවිය යුතුය.
මැතිව් ෂාර්ලි

27
නිශ්චිතවම, AKA 'සම්බන්ධක' මෙහෙයුමට unlinkකිසිදු සම්බන්ධයක් නොමැත ln. නම unlinkමඟින් ගොනු පද්ධතියේ ගොනු වගුවෙන් ගොනුවක් සම්බන්ධ කිරීමේ / ඉවත් කිරීමේ ක්‍රියාවලියට යොමු වන අතර එමඟින් අන්තර්ගතය ඒවා වෙත කිසිදු සඳහනකින් වෙන් කරනු ලැබේ - ඒවා සම්බන්ධ නොවී ඇත. එය විශේෂයෙන් සබැඳි සහ සිම්ලින්ක් සඳහා යොදන විට නොමඟ යවන ව්‍යාකූල නමකි. වර්ගය නොසලකා ඕනෑම ගොනුවක්unlink සමඟ ක්‍රියා කරන බැවින් එය සිම්ලින්ක් සමඟ ක්‍රියා කරයි .
මැතිව් ෂාර්ලි

4
මෝඩ දෙයක් කිරීම ගැන ඔබ කවදා හෝ කනස්සල්ලට පත්ව සිටී නම්, alias rm="rm -i"මා සිතන වෙනත් ඕනෑම දෙයකට වඩා සැඟවී ඇත.
මැතිව් ෂාර්ලි

833

ඇති "විසන්ධි කරන්න" විධානය භාවිත කරන්න සහ වග බලා ගන්න නොවේ අවසානයේදී / කිරීමට

$ unlink mySymLink

unlink () ගොනු පද්ධතියෙන් නමක් මකා දමයි. එම නම ගොනුවකට අවසන් සබැඳිය නම් සහ කිසිදු ක්‍රියාවලියක් ගොනුව විවෘත කර නොමැති නම් ගොනුව මකා දමා එය භාවිතා කළ අවකාශය නැවත භාවිතා කිරීම සඳහා ලබා දී ඇත. නම ගොනුවකට අවසන් සබැඳිය වූ නමුත් කිසියම් ක්‍රියාවලියක් තවමත් ගොනුව විවෘතව තිබේ නම් ගොනුව එය සඳහන් කරන අවසන් ගොනු විස්තරය වසා තබන තුරු පවතිනු ඇත.

මම එය නිවැරදිව කියවන්නේ නම් මෙය ගැටළු සහගත විය හැකි යැයි මම සිතමි.

නම සංකේතාත්මක සබැඳියකට යොමු කරන්නේ නම් සබැඳිය ඉවත් කරනු ලැබේ.

නම සොකට්ටුවකට, ෆිෆෝ හෝ උපාංගයකට යොමු කරන්නේ නම්, එහි නම ඉවත් කරනු ලැබේ, නමුත් වස්තුව විවෘත කර ඇති ක්‍රියාවලීන් එය දිගටම භාවිතා කරයි.

https://linux.die.net/man/2/unlink


33
ROmarAbid "rm foo /" අනුවාදය මා බිය ගන්වයි. මෙය වඩා ආරක්ෂිත බවක් පෙනේ :)
ජෝ ෆිලිප්ස්

9
උබුන්ටු වලදී, මම, සමඟ ~/c/a/file, පරීක්ෂා /c/b/කළා ln -s ~/c/a ~/c/b/. තුළ ~/c/b/, rm a/ක්‍රියා නොකරයි, rm -rf a/මුල් පිටපත පමණක් හිස් කරයි a. unlink aපරිපූර්ණව ක්‍රියා කරන අතර unlink a/කිසිවක් නොකරයි.
බ්‍රැඩි පුහුණුකරු

3
OS X 10.10 හි, unlinkහුදෙක් අන්වර්ථයකි rm. rmඔබේ නාමාවලි ව්‍යුහයේ ඕනෑම කොටසක් සමඟ කටයුතු කිරීමේදී නිසි විනයක් භාවිතා කළ යුතු බව පෙන්වීමට යයි .
ඩග් පවර්ස්

1
ස්ක්‍රිප්ටින් rm -fකිරීමේදී සබැඳියක් පවතින්නේද නැද්ද යන්න නිහ ly ව මකා දමනු ඇති අතර සබැඳිය නොමැති unlinkනම් පැමිණිලි කරනු ඇත. ලින්ක් කිරීම සඳහා සමාන `-f 'විකල්පයක් නොමැති බැවින් ස්ක්‍රිප්ට් වඩාත් සංකීර්ණ කරයි.
ෂොන්කි ලිනක්ස් පරිශීලක

22
unlinkසාමාන්‍ය ගොනු මකා දැමිය හැකිය. එය සිම්ලින්ක් වලට වඩා අඩු rmහා විශේෂිත නොවේ. ධජය rmනොමැතිව නාමාවලි මකා -rනොදමනු ඇත. එබැවින් rm ට වැඩි කැමැත්තක් දැක්වීමට මම නිර්දේශ කරමි, එයට වාචික හා අන්තර්ක්‍රියාකාරී ධජ ඇත; අර්ථවත් අනතුරු ඇඟවීම් සහ වැරදි පණිවිඩ.
ThorSummoner

18

rm සංකේතාත්මක සබැඳිය ඉවත් කළ යුතුය.

skrall@skrall-desktop:~$ mkdir bar
skrall@skrall-desktop:~$ ln -s bar foo
skrall@skrall-desktop:~$ ls -l foo
lrwxrwxrwx 1 skrall skrall 3 2008-10-16 16:22 foo -> bar
skrall@skrall-desktop:~$ rm foo
skrall@skrall-desktop:~$ ls -l foo
ls: cannot access foo: No such file or directory
skrall@skrall-desktop:~$ ls -l bar
total 0
skrall@skrall-desktop:~$ 

17

භාවිතා කරන්න rm symlinknameනමුත් අවසානයේ ඉදිරි කප්පාදුවක් ඇතුළත් නොකරන්න (භාවිතා නොකරන්න :) rm symlinkname/. yඔව් යනුවෙන් පිළිතුරු දීමට ඔබට සිම්ලින්ක් ඉවත් කිරීමට අවශ්‍ය දැයි ඔබෙන් අසනු ඇත.


63
ඔබ වැරදියි, නමුත් නිවැරදි පිළිතුර දැනටමත් මෙහි ඇති අතර පිළිගෙන ඇත (අවුරුදු 4 කට පෙර!). කරදර වන්නේ ඇයි?
මැතිව් ස්කවුටන්

2
ගූගල් විසින් "සිම්ලින්ක් ඉවත් කරන්න" සෙවීමේදී මෙය විශේෂිත ස්නිපටයක් ලෙස තබා ඇත. සමහර විට එය එහි සංක්ෂිප්තතාවයට කැමති විය හැකිය, එහි ur ෂධවේදය ක්‍රියා කරන්නේ කෙසේදැයි විශ්වාස නැත. කෙසේ හෝ වේවා, මගේ විධාන රේඛාව දෙස ආපසු හැරී බලන විට මම වහාම ෆේස් පෑම් එකක් කළෙමි :-)
රැන්ඩල්

12

එය සැබවින්ම සමමුහුර්තයක් යැයි උපකල්පනය කිරීම,

$ rm -d symlink

එය හදුනාගත යුතුය, නමුත් එය අපට නොපවතින හෙයින්, වෙනත් නඩුවක් සඳහා අදහස් කරන ලද ගුප්ත කේතය තවදුරටත් නොපවතින නමුත් මෙහි නිවැරදි දේ සිදු වේ.


-dCentOS 6.8, Coreutil 8.4 (2018 ජුනි නිකුත් කිරීම) හි කිසිදු තර්කයක් නොමැති නමුත් එය Xubuntu 18.04, Coreutils 8.28 (2018 ජනවාරි) හි පවතී ...
karatedog

7

Rm ට සිම්ලින්ක් ඉවත් කිරීමට නොහැකි නම්, සමහර විට ඔබ සිම්ලින්ක් අඩංගු නාමාවලියෙහි ඇති අවසරයන් දෙස බැලිය යුතුය. නාමාවලි ඇතුළත් කිරීම් ඉවත් කිරීමට, අඩංගු නාමාවලියෙහි ලිඛිත අවසරය අවශ්‍ය වේ.


4

ඔබගේ සැකසුම උපකල්පනය කිරීම වැනි දෙයක් : ln -s /mnt/bar ~/foo, එවිට ඔබට rm fooකිසිදු ගැටළුවක් නොමැතිව එය කළ හැකිය. ඔබට නොහැකි නම්, ඔබ එහි හිමිකරු බවට වග බලා ගන්න fooසහ ගොනුව ලිවීමට / ක්‍රියාත්මක කිරීමට අවසර ඇත. ඔබ එය පුනරාවර්තනය නොකරන්නේ නම් ඉවත් කිරීම fooස්පර්ශ නොවේ bar.


2

CentOS හි, ධාවනය rm linknameකර එය "සංකේතාත්මක සබැඳිය ඉවත් කිරීමට?" ටයිප් Yකර Enter, සබැඳිය නැති වී ඩිරෙක්ටරිය ආරක්ෂිත වේ.


2

වින්ඩෝස් සර්වරයක ක්‍රියාත්මක වන MinGW (ඇත්ත වශයෙන්ම Git Bash) සමඟ මට මෙම ගැටළුව ඇතිවිය. ඉහත යෝජනා කිසිවක් ක්‍රියාත්මක නොවන බව පෙනේ. වින්ඩෝස් එක්ස්ප්ලෝරර් හි ඇති මෘදු සබැඳිය මකා දමා ප්‍රතිචක්‍රීකරණ බඳුනේ ඇති අයිතමය මකා දැමුවහොත් අවසානයේදී නාමාවලියෙහි පිටපතක් සාදන ලදී. එය ගොනු මකා දැමීම වැනි ශබ්දයක් ඇති කළ නමුත් එසේ නොවීය. උපස්ථයක් සාදන්න!


3
"එය ලිපිගොනු මකා දැමීම වැනි ශබ්දයක් ඇති කළේය ..." - වාව්!
ස්ටෙරෙක්ස්

LMFAO. "එය ලිපිගොනු මකා දැමීම වැනි ශබ්දයක් ඇති කළේය ..."
ශිවම් ha ා

මට මතකයි නම්ය තැටි!
කීත් විටින්හැම්

Eddyq @ eddyq-අක්ෂාංශ-E6440: ඉහත මා වෙනුවෙන් වැඩ කිසිවක් ~ $ ls පරිගණක භාගත නාමාවලි එකක්-වින්ඩෝස් සංගීත රාජ්ය වීඩියෝ w ලේඛන හෝ නාමාවලි එකක් examples.desktop පින්තූර ආකෘති 'VMware vmx ගොනු'
eddyq
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.