විධාන රේඛාව හරහා නාමාවලියක් නැවත නම් කරන්නේ කෙසේද?


598

මට නාමාවලිය ලැබී ඇති අතර /home/user/oldnameඑය නැවත නම් කිරීමට මට අවශ්‍යය /home/user/newname. ටර්මිනලයක මෙය කරන්නේ කෙසේද?



සෑම විටම mvහෝ භාවිතා කරන්න rename.
ජෝන් ස්ට්‍රූඩ්

Answers:


789
mv /home/user/oldname /home/user/newname


සිසිල් ලිපිය. එය හරියටම කාරණයයි.
Rafał Cieślak

82
නව නම දැනටමත් පවතින නාමාවලියක් නම් මෙය ක්‍රියා නොකරනු ඇත. ඒ වෙනුවට, එය පැරණි නාමාවලිය නව එකක් තුළට ගෙන යනු ඇත.
cxrodgers

10
නාමාවලියෙහි නම ප්‍රාග්ධනීකරණය සමඟ සමාන නම් ඔබට ලැබෙනු ඇත No such file or directory. මෙය වළක්වා ගැනීම සඳහා එවැනි දෙයක් කරන්න mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder.
DutGRIFF

10
xcxrodgers: ඉලක්කගත නාමාවලියක් ලෙස සැලකීම වළක්වා ගැනීමට ( ) සමත් කරන්න--no-target-directory-Tnewname .
jfs

127

mv රැකියා දෙකක් කරන්න පුළුවන්.

  1. එයට ගොනු හෝ නාමාවලි ගෙන යා හැකිය
  2. එයට ගොනු හෝ නාමාවලි නැවත නම් කළ හැකිය

ගොනුවක් හෝ නාමාවලියක් නැවත නම් කිරීම සඳහා මෙය පර්යන්තයේ ටයිප් කරන්න:

mv old_name new_name 

පැරණි සහ නව නම් අතර අවකාශය සමඟ.

ගොනුවක් හෝ නාමාවලියක් ගෙනයාමට මෙය පර්යන්තයේ ටයිප් කරන්න.

mv file_name ~/Desktop 

එය ගොනුව ඩෙස්ක්ටොප් එකට ගෙන යනු ඇත.

නාමාවලියක් නම් ඔබ -Rනාමාවලි නාමයට පෙර එකතු කළ යුතුය :

mv -R directory_name ~/Desktop

4
mvඋබුන්ටු හි ඇත්තේ GNU coreutils වෙතින් ය. AFAICT එයට -Rවිකල්පයක් නැත, ඩිරෙක්ටරියක් ගෙන යන විට එය අවශ්‍ය නොවේ.
arielf

1
-r පවා ක්‍රියා නොකරයි
user1735921

නිවැරදි විකල්පය වේ -T. එහි හැසිරීම සඳහා ma bmaupin ගේ පිළිතුර බලන්න .
කාලානුක්‍රමික

43
mv -T /home/user/oldname /home/user/newname

ගමනාන්තය නොපවතින නම් හෝ එය පවතින්නේ නම් එය හිස් නම් එය නාමාවලිය නැවත නම් කරනු ඇත. එසේ නොමැතිනම් එය ඔබට දෝෂයක් ලබා දෙනු ඇත.

ඒ වෙනුවට ඔබ මෙය කරන්නේ නම්:

mv /home/user/oldname /home/user/newname

කාරණා දෙකෙන් එකක් සිදුවනු ඇත:

  • නම් /home/user/newnameනොපවතියි, එය නම-වෙනස් කිරීම සිදුවේ /home/user/oldnameකිරීමට/home/user/newname
  • /home/user/newnameපවතී නම් , එය චලනය වනු /home/user/oldnameඇත /home/user/newname, එනම්/home/user/newname/oldname

මූලාශ්‍රය: ඩිරෙක්ටරිය ප්‍රතිස්ථාපනය කරනවාට වඩා mv ඩිරෙක්ටරියක් තුළට ගමන් කරන බව තීරණය කරන්නේ කෙසේද?


සිද්ධි සංවේදී නොවන ගොනු පද්ධතියක (බොහෝ විට මැකෝස් මත විය හැකිය) නාමාවලි නාමය විශාලනය කිරීමට ඔබට අවශ්‍ය නම් එය ක්‍රියා නොකරයි. mv -T $PWD/analisys $PWD/Analisysප්‍රතිලාභ mv: '/Users/sixtykeys/Projects/murphy/tmp/analisys' and '/Users/sixtykeys/Projects/murphy/tmp/Analisys' are the same file. මම අතරමැදි නමක් (එනම් analisys_) භාවිතා කරමින් මේ වටා වැඩ කළෙමි .
බැසිලිකෝඩ්

ගොනු පද්ධතියේ සීමාවන් නිසා විධානය සාර්ථක නොවන්නට ඇත, නමුත් වෙනත් දෘෂ්ටි කෝණයකින් එය ඔබගේ අභිප්‍රායන් අර්ථ නිරූපණය කිරීමට සමත් විය (නාමාවලියක් නම් කිරීම, එය ගෙනයාම නොවේ) :)
bmaupin

ඔබ මෙය උත්සාහ කළාද?
මහමුද් එස්. මර්වාඩ්

7

ගොනු පද්ධතියේ ඔබේ මට්ටමින් නාමාවලියක් නම් කිරීමට ඔබට අවශ්‍ය නම් (උදා: ඔබ ඔබේ නිවසේ නාමාවලියෙහි සිටින අතර ඔබේ නිවාස නාමාවලියෙහි ඇති නාමාවලියක් නැවත නම් කිරීමට අවශ්‍යය):

mv Directory ./NewNameDirectory

5

මෙම gvfs-moveවිධානය මඟින් ගොනු සහ නාමාවලි නැවත නම් කරනු ඇත.

gvfs-move /home/user/oldname /home/user/newname

4

gvfs-rename නාමාවලි නැවත නම් කරනු ඇත. නව නම සහිත නාමාවලියක් දැනටමත් තිබේ නම් එය දෝෂයක් ලබා දෙනු ඇත. එකම සීමාව නම් ඔබට ෆෝල්ඩරයේ නම සහිත මාර්ගයක් භාවිතා කළ නොහැක. ඒ නිසා

gvfs-rename /home/boo /home/boo-the-dog 

වැඩ කරන්නේ නැහැ, නමුත්

cd /home 
gvfs-rename boo boo-the-dog 

වැඩ කරයි. Mv -T තරම් ප්‍රයෝජනවත් නොවන නමුත් එය ජාල මෙහෙයුම් සඳහා අදහස් කරන බව මම මිනිසා තුළ කියෙව්වෙමි.

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.