OS X හි, `sudo ls` සැඟවුණු (තිත්) ගොනු පෙන්වන්නේ ඇයි?


161

OS X යොස්මයිට් සමඟ, පහත දැක්වෙන විධානයන් භාවිතා කරමින්, මට පහත සඳහන් දේ ලැබේ:

$ touch .a
$ touch b
$ /bin/ls
b
$ /bin/ls -A
.a  b
$ sudo /bin/ls
.a  b

එය මූලයෙන් ආයාචනා කරන විට සැඟවුණු ලිපිගොනු (තිතකින් ආරම්භ වන නම්) පෙන්වන අතර සාමාන්‍ය පරිශීලකයෙකු ලෙස ධාවනය වන විට ඒවා (අපේක්ෂිත පරිදි) නොපෙන්වයි. මෙය lsලිනක්ස් හි එන දෙයට වඩා වෙනස් වේ (එන එක coreutils).

lsමේ ආකාරයට හැසිරෙන්නේ ඇයි ?


141
මම එම ටැග් "ඕඑස්එක්ස් නරකයි" ලෙස වැරදියට කියවා ඇත්තෙන්ම ව්‍යාකූල වී සිටිමි.
රේස්ටැෆරියන්

5
ටැග් මහකුරු ඉඩ, නම් එය අඩු වැට්ටවීමට වනු BSDසහ OSXමෙහි වඩාත් සුදුසු වේ.
රයිනස්

Ay රයිස්ටැෆරියන් විහිලු සහගතයි, මන්ද සාමාන්‍යයෙන් අනෙක් පැත්ත නිසා මිනිසුන් ටැග් සමඟ වාක්‍ය ලිවීමට උත්සාහ කරයි.
බ්රියම්

Answers:


403

මෙම අංගය ඇපල් විශේෂිත නොවන බව පෙනේ. මෙය පොදුවේ BSD පද්ධතිවල ලක්ෂණයකි.

/* Root is -A automatically. */
if (!getuid())
    f_listdot = 1;

මුලදී, එය 4.4BSD-Lite ප්‍රභවයන් වෙත නැවත සොයා ගැනීමට මට හැකි විය . එම ප්‍රභවයන් ආනයනය කරන 1994 සිට මෙම FreeBSD බැඳීම තුළ දැනටමත් එය පැවතුනි .

මෙම විශේෂාංගය OpenBSD හි ද පවතින අතර එය 1995 සිට NetBSD වෙතින් කේත ආනයනය කරන බව පවසන මෙම බැඳීම තුළින් සොයාගත හැකිය , එබැවින් මෙය දැනටමත් NetBSD හි පැවතුනි .

386BSD වෙතින් කේත ආනයනය කරන බව පවසන 1993 සිට NetBSD හි ඇති බැඳීම යමෙකු සොයා ගනී , සහ විශේෂාංගය දැනටමත් තිබේ . තවද, මෙම කැපවීම පෙන්නුම් කරන්නේ 1991 දී 386 බීඑස්ඩී 0.0 අනුවාදය සංවර්ධනය කිරීමේදී එය මට කිව හැකි පරිදි බීඑස්ඩී වෙතින් 4.3 ක් පමණ ලබා ගත් බවයි.

එම ප්රකාශය සංවර්ධනය තුළ ප්රථම වරට පෙනී 4.3BSD-රෙනෝ දී මෙම සිදු (27 ජුනි 1989), "නව ls පළමු කම්කරු අනුවාදය" යන. මුල් අදහස් දැක්වීමේදී:

/* root sees all files automatically */

එය එදිනම වෙනස් කරන ලදි (මෙම ගබඩාවේ කාලරාමු සම්පූර්ණයෙන්ම නිවැරදි යැයි මට විශ්වාස නැත):

/* root is -A automatically */

1992 දී පමණක් ලොකු අකුර සහ කාල සීමාව එකතු කරන ලද්දේ අදහස් දැක්වීම දැන් අප සතුව ඇති දෙයට හරවා ය:

/* Root is -A automatically. */

මෙම හැසිරීම 1979 මැයි 9 වන දින 2BSD හි මෙම ඡායාරූපයේ දැක්වෙන පරිදි පැවතුනි :

Aflg = getuid() == 0;

මට ඒ කාලයේ සිට සත්‍ය ඉතිහාසයක් සොයාගත නොහැක, නමුත් 1977 සිට 1BSD හි මෙම ඡායාරූපයක් ද එම රේඛා නොමැතිව තිබේ. -Aඇත්ත වශයෙන්ම ධජය නොමැතිව .

එබැවින් 1977 නොවැම්බරයේ (1BSD එකල සංවර්ධනය වෙමින් පවතී) සහ 1979 මැයි මාසයේදී 2BSD නිකුත් කිරීම අතර මෙම ලක්ෂණය හඳුන්වා දී ඇති බව පෙනේ.


මෙම පරීක්ෂණය අතරතුරදී මට හමු වූ දෙය නම්, මෙම හැසිරීම අභිබවා යාම සඳහා 2005 දී FreeBSD වෙත එකතු කරන ලද -Iධජය සහ මඳක් පසුව නැවත සකස් කරන ලද ධජයයි .


52
එසේම, ලිපිගොනු ආරම්භ කිරීමෙන් ඒවා සැඟවීමේ “ලක්ෂණය” .සරල දෝෂයක් බව සඳහන් කිරීම වටී - ඩිරෙක්ටරිය lsසැඟවිය යුතු යැයි සිතිය ., මිස සෑම දෙයක්ම ආරම්භ නොවේ .. දශක කිහිපයකට වේගයෙන් ඉදිරියට යන්න, එය භයානක ලිපිගොනු සැඟවීමට බහුලව භාවිතා වන අතර පද්ධති වින්‍යාසය සැඟවීමටද භාවිතා කරයි - එබැවින් පරිපාලකයින්ට එම ලිපිගොනු බැලීමට ඉඩ දීම අර්ථවත් කරයි (වින්‍යාසය පවත්වා ගැනීමට හෝ සැඟවුණු අනිෂ්ට මෘදුකාංග සොයා ගැනීමට) .
Luaan

23
Luaan ගේ ප්‍රකාශය සඳහා යොමුව: plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp (“තිත් ලිපිගොනු” සැඟවීම දෝෂයක් ලෙස ආරම්භ වූ බව රොබ් පයික් පැහැදිලි කරයි).
nibot

2
POSIX තාර්කිකත්වයෙන්, "ls උපයෝගීතාවයේ සමහර historical තිහාසික ක්‍රියාත්මක කිරීම් මඟින් -a විකල්පය සඳහන් නොකර සුපිරි පරිශීලකයෙකු ls ආයාචනා කරන විට dot සහ dot-dot හැර අනෙක් සියලුම නාමාවලි වල පෙන්වයි." සාමාන්‍ය "පරිශීලකයින් -a නියම නොකර ls ආයාචනා කරන විට, <period> සමඟ ආරම්භ වන නම් සහිත ලිපිගොනු ගොනු මෙහෙයුම්කරුවන් ලෙස නම් නොකළහොත් ඒවා පිළිබඳ තොරතුරු නොපෙනේ. pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html
R .. GitHub STOP

එය බොහෝ පැරණි ය. මම හිතන්නේ එය SysV-BSD භේදයට පෙර අවසන් වරට SysV පද්ධති වෙත ප්‍රවේශ වූ විට හරියටම එකම හැසිරීමක් පැවතුනි.
යෝෂුවා

3
එපික් පිළිතුර. ඉතිහාසය ඉගෙන ගත්තා!
කොරී ගෝල්ඩ්බර්ග්

15

මෙන්න ප්‍රභව කේතයට සබැඳියක් . සටහන /* Root is -A automatically. */. මෙය ඇපල් සමාගමේ BSD අනුවාදයේ ලක්ෂණයකි ls.


සිත්ගන්නාසුලු සොයා ගැනීම. Ls කරන විට සැඟවුණු ගොනු යටපත් කිරීමට ක්‍රමයක් තිබේද?
මිස්ටර් ලිස්ටර්

5
හ්ම්, මෙය ඇපල් විශේෂිත අංගයක් නොවන බව පෙනේ , නමුත් එය පැමිණෙන්නේ BSD ලෝකයෙන්ද?
kirelagin

2
හරි, එය ඇපල් විශේෂිත නොවේ. ඔබගේ පිළිතුරට ස්තූතියි, එය මාව නිවැරදි මාවතකට යොමු කළේය. Root is -A automaticallyහෝඩුවාවන් සෙවීම සඳහා මම නූල් භාවිතා කළෙමි .
kirelagin

මිස්ටර් ලිස්ටර්: ඔබට බොහෝ මෙහෙයුම් පද්ධතිවල (අයිබීඑස්, ප්‍රාග්ධන අයි) සමඟ තිත් ලිපිගොනු රූට් ලෙස ප්‍රදර්ශනය කිරීම යටපත් කළ හැකිය (ෆ්‍රීබීඑස්ඩී, බොහෝ විට ඕඑස් එක්ස් ද විය හැකිය)
ඇලන් ජූඩ්

1

IIRC, යූස්නෙට් හි මුල් දිනවල (80 දශකයේ මුල් භාගයේදී) මේ පිළිබඳව නූල් එකක් තිබුණි. අනිෂ්ට පරිශීලකයින්ට සයිසැඩ්මින් / මූලයෙන් ලිපිගොනු / නාමාවලි / ක්‍රියාත්මක කළ හැකි දෑ පහසුවෙන් සැඟවිය නොහැකි වන පරිදි මෙම අංගය ආරක්ෂක පූර්වාරක්ෂාවක් ලෙස එකතු කරන ලදි. න්‍යාය මූලික වශයෙන් "මූලයට සෑම දෙයකටම ප්‍රවේශය ඇත, එබැවින් එය සියල්ල දැකීමට හැකි විය යුතුය".


සාධාරණ යැයි පෙනේ (ගොනුවක් තිත් ගොනුවක් බවට පත් කිරීම එය සැඟවීමට සැක සහිත ක්‍රමයකි). එම ලේඛනාගාරය සොයා ගැනීම සතුටක් වනු ඇත.
kirelagin
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.