wcd(1) | 2019-08-14 | wcd(1) |
wcd - Wherever Change Directory
chdir voor DOS en Unix
wcd [opties] [map]
Wcd is een commandoregel programma om snel van map te veranderen. Het bespaart tijd tijdens het typen. Men hoeft alleen maar een deel van de mapnaam te typen en wcd springt er heen. Wcd heeft een snelle selectie methode wanneer er meerdere treffers zijn, en biedt de mogelijkheid om aliassen van mappen aan te maken en om mappen in de ban te doen. Wcd biedt ook een schermvullende interactieve boomweergave met snelzoek functie.
Wcd is gemodelleerd naar Norton Change Directory (NCD). NCD verscheen voor het eerst in The Norton Utilities, Release 4, for DOS in 1987, gepubliceerd door Peter Norton.
Wcd is geschikt gemaakt voor verschillende commandoregel shells: DOS command.com, Windows cmd.exe en PowerShell, OS/2 cmd.exe, en Unix shells zoals Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), en C (csh) shell en anderen draaiend op elk besturingssysteem.
Wcd ondersteunt 8 bit tekensets op alle systemen, en heeft optioneel ondersteuning voor Unicode. Zie paragraaf LOKALISTIE.
Zie paragraaf INSTALLATIE hoe wcd voor persoonlijk gebruik in te stellen.
Standaard, wanneer geen jokertekens gebruikt worden, zoekt wcd een map met een naam die begint met de naam die getypt is.
Bijvoorbeeld deze opdracht zal veranderen naar de huidige gebruikers map "/home/user/Desktop":
wcd Desk
Wanneer er meerdere treffers zijn zal wcd een lijst presenteren van alle treffers. De gebruiker kan een keuze maken met enkele toetsaanslagen (meestal een).
Wcd ondersteunt de volgende jokertekens:
* treft een willekeurige reeks van tekens (nul of meer) ? treft een willekeurig teken [SET] treft willekeurige tekens in de gespecificeerde set, [!SET] of [^SET] treft willekeurige tekens niet in de gespecificeerde set.
Een set wordt samengesteld uit tekens of reeksen; een reeks ziet er uit als teken koppelteken teken zoals in "0-9" of "A-Z". "[0-9a-zA-Z_]" is de minimale set van tekens toegestaan in de "[..]" patroon samenstelling. Internationale tekens (d.w.z. 8 bit tekens) zijn toegestaan als het systeem ze ondersteunt. Om de speciale syntactische betekenis van elke van "[]*?!^-\"binnen of buiten een "[..]" samenstelling te onderdrukken en exact gelijke te treffen, laat het teken vooraf gaan door een backslash ("\") teken.
Het gebruik van jokertekens maakt krachtige zoekmethodes mogelijk. Bijvoorbeeld dit treft elke mapnaam die eindigt op "top".
wcd *top
Tref mappen die ergens "top" in de naam heeft:
wcd *top*
Tref elke map die die begint met "a", "b" or "c":
wcd [a-c]*
Het is ook mogelijk om een deel van het pad op te geven. Hier zoekt Wcd naar een map die begint met "Desk" en wiens pad overeenkomt met *me/Desk*.
wcd me/Desk
Het is toegestaan om elke expressie met schuine strepen en jokertekens te typen. B.v.:
wcd src*/*1?/a*2
Wanneer geen jokertekens gebruikt zijn en wcd vindt een perfecte treffer, zullen alle niet exacte treffers genegeerd worden. Dit gedrag kan gewijzigd worden met de -w optie.
De interactieve mappen-verkenner kan met de optie -g gestart worden.
wcd -g
Wcd genereert een boomdata-bestand waarin de map gezocht wordt. Op Unix en Windows voegt wcd ook symbolische koppelingen toe wanneer de schijf gescand wordt, maar deze worden niet gevolgd. Wanneer symbolische koppelingen gevolgd worden, zou wcd oneindige lussen kunnen scannen, of zeer grote delen van een netwerk.
Wcd kan ook veranderen naar mappen die niet in het boomdata-bestand staan. B.v.:
wcd ..
Wanneer wcd een treffer heeft gevonden, maar niet naar de map kan veranderen, probeert hij deze te verwijderen uit het standaard boomdata-bestand. Niet uit het extra boomdata-bestand. Zie ook optie -k.
Wcd houdt een mappenstapel bij die opgeslagen wordt op schijf. De stapel heeft een standaard grootte van 10 en is cyclisch. Zie opties -z, -, + en =.
In een omgeving met meerdere gebruikers kan optie -u gebruikt worden om naar mappen van andere gebruikers te veranderen.
Op DOS en Windows systemen maakt het niet uit of een slash "/" of een backslash "\" als mappen-scheidingsteken gebruikt wordt.
Het is mogelijk op DOS en Windows systemen om tegelijk van schijf en map te veranderen door de mapnaam vooraf te laten gaan door de schijf naam.
wcd d:games
De Windows versies (Opdrachtprompt, PowerShell, MSYS, zsh, Cygwin) ondersteunen Windows SMB LAN UNC paden zonder schijfletter, zoals "\\servername\sharename". Wcd voor de Opdrachtprompt maakt gebruik van het "pushd" commando om automatisch een UNC pad toe te wijzen aan een schijfletter. In Windows PowerShell, MSYS, zsh en Cygwin worden UNC paden volledig ondersteund. De huidige werkmap kan een UNC pad zijn.
Wcd ondersteunt het wijzigen van het formaat van het opdrachtpromptvenster in Windows 10 en ConEmu (zie <https://conemu.github.io/>) sinds versie 6.0.3. Het Windows 10 opdrachtpromptvenster moet niet in verouderde console modus zitten (controleer de opdrachtpromptvenster eigenschappen). Het scherm kan mogelijk niet verversen wanneer de Indeling eigenschap "tekstterugloopuitvoer bij formaat wijzigen" uit staat. Het scherm kan handmatig ververst worden door op de F5 toets te drukken.
Wcd heeft drie verschillende interface om uit een lijst van treffers te kiezen. De interface kan gekozen worden bij het bouwen van Wcd.
De eerste interface gebruikt standaard in- en uitvoer. Een genummerde lijst wordt in de terminal geprint. De gebruiker kan kiezen uit de lijst door een nummber te typen gevolgd door <Enter>. Deze interface biedt geen terug-blader functionaliteit bij een lange lijst. De terug-blader functionaliteit van de terminal/console moet gebruikt worden. Deze interface is heel klein en overdraagbaar.
De tweede interface is gebouwd met de conio bibliotheek. Het biedt een ingebouwde terug-blader functie. De gebruiker wordt een lijst gepresenteerd, genummerd met letters. Het kiezen uit de lijst kan gedaan worden met een enkele toetsaanslag van een letter. Deze interface is snel, omdat het toetsaanslagen bespaart. Wanneer mogelijk wordt het scherm hersteld na afsluiten. Iemand die prefereert nummers te typen kan de -N optie gebruiken.
De derde bibliotheek is gebouwd met de curses bibliotheek. Het is gelijk aan de conio interface. De curses versie van wcd heeft een extra 'grafische' interface. Het laat de gebruiker een map kiezen via een vol-scherm interactieve mappenboom verkenner. Het heeft vim(1) gelijke navigatie en zoek methodes. Het kan geactiveerd worden met de optie -g.
Door de -o optie te gebruiken kan men altijd terugvallen op de standaard in- en uitvoer interface.
Gebruik deze optie om snel het huidige pad toe te voegen aan het standaard boomdata-bestand. Het opnieuw scannen van de complete schijf kan soms lang duren.
wcd -A . wcd -A /home -A /etc wcd -A d: -A e: -A \\server\share
Op Windows kan men alle gedeelde mappen van een Windows LAN server scannen door iets te typen als: "wcd -A \\servername".
Zie ook opties -S en -s en -E.
Wcd plaatst het huidige pad in het ban-bestand. Dit betekent dat wcd alle treffers van deze map en zijn sub-mappen negeert.
Het ban-bestand kan gewijzigd worden met een tekstbewerker. Gebruik van jokertekens wordt ondersteund en namen worden vergeleken met het volledige pad.
Verbannen paden worden niet uitgesloten van het scannen van de schijf. Gebruik optie -xf om dat te doen.
1. Probeer een treffer te vinden in een boomdata-bestand. 2. Wanneer geen treffer, probeer het getypte pad te openen.
In directe CD modus werkt wcd in omgekeerde volgorde.
1. Probeer het getypte pad te openen. 2. Indien niet gelukt, probeer een treffer te vinden in een boomdata-bestand.
Het stapelbestand en go-script worden standaard opgeslagen op schijf C: wanneer omgevingsvariabele HOME niet ingesteld is. Gebruik deze optie wanneer SCHIJF een alleen-lezen schijf is. Deze optie moet gebruikt worden vooraf aan stapel opties -, + en =.
Gebruik deze optie om snel het huidige toe te voegen aan het extra boomdata-bestand.
Wcd start een tekstuele curses gebaseerde 'grafische' interface. De gebruiker kan een map selecteren via een vol-scherm interactieve mappenverkenner. Het heeft een vim(1) achtige navigatie en zoek methode.
Wanneer geen zoekstring gegeven is presenteert wcd de gehele boom die in het standaard en het extra boomdata-bestand staat.
Wanneer een zoekstring gegeven is wordt de trefferlijst gepresenteerd als een mappenboom
De standaard boom opmaak is gelijk aan de boomopmaak van de originele NCD op DOS. Het verschil in opmaak is dat in NCD alle mappen van dezelfde diepteniveau verticaal uitgelijnd waren over de hele boom. Dit was mogelijk in NCD, omdat de maximale breedte van een mapnaam in DOS 12 (8.3) tekens was. Op moderne besturingssystemen kunnen namen erg lang zijn. Daarom zijn mappen met dezelfde diepte in wcd niet verticaal uitgelijnd over de hele boom, maar alleen in sub-takken. Daarom is er wat zijdelingse beweging wanneer recht omhoog of omlaag bewogen wordt van de ene sub-tak naar de ander sub-tak.
Het navigatie gedrag in wcd is exact hetzelfde als in de originele NCD. Bijvoorbeeld wanneer je de Omlaag knopt drukt ga je omlaag naar de volgende map met dezelfde diepte, springend over takken. Dit maakt snelle navigatie door de boom mogelijk.
Zie opties -Ta, -TC, en -TC om het navigatiegedrag te veranderen.
In deze modus zal wcd geen lijst tonen wanneer er meer dan een map is die treft met de ingegeven map. Wcd zal veranderen naar de eerste optie. Wanneer wcd opnieuw aangeroepen wordt met hetzelfde argument, zal wcd veranderen naar de volgende optie, en zo verder.
Wcd print de map waar naar te gaan naar standaard uitvoer. Zo kan een andere installatie methode gebruikt worden. Men zou de volgende functie kunnen maken voor een POSIX compatibele shell:
wcd () { cd "$($HOME/bin/wcd.exe -j $@)" }
Wanneer je een oude shell gebruikt die geen "$()" opdracht vervanging ondersteunt, moet je de oude stijl opdrachtvervanging gebruiken met accent graves.
wcd () { cd "`$HOME/bin/wcd.exe -j $@`" }
Op Windows systemen, wanneer men 4NT shell draait, kan men de volgende alias maken:
alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`
Deze methode elimineert de noodzaak voor het go-script, zodat men de optie -GN in combinatie met -j kan gebruiken.
Bewaar paden in boomdata-bestanden wanneer wcd er niet naar kan veranderen. Het standaard gedrag van wcd is dat het probeert de paden te verwijderen uit het boomdata-bestand wanneer wcd niet naar ze kan veranderen. Met deze optie wordt dit gedrag uitgeschakeld.
Lees niet het standaard boomdata-bestand. Het relatieve boomdata-bestand zou al gemaakt moeten zijn met de wcd optie +S. PAD mag ook direct naar een bestand wijzen.
Een voorbeeld. Stel een ander systeem is gekoppend aan koppeling "/mnt/network":
wcd -n /mnt/network src
Wcd opent het relatieve boomdata-bestand in "/mnt/network/". The bestand bevat de paden relatief vanaf dat punt.
Wcd met een conio of curses gebaseerde interface (zie paragraaf Interfaces) presenteert een trefferlijst standaard genummerd met letters. Wanneer de optie -N is gebruikt wordt de trefferlijst genummerd met nummers. Onafhankelijk van de optie -N kan men een letter of een nummer typen om een selectie uit de lijst te maken.
Wanneer om een of andere reden de conio of curses interface van wcd niet werkt kan men terugvallen op de standaard invoer/uitvoer interface van wcd door het gebruik van de -o optie.
Als de map leeg is zal wcd het verwijderen, en proberen het te verwijderen uit het boomdata-bestand.
Wcd zal de map verwijderen en al zijn sub-mappen en bestanden, en verwijdert de mappen uit het boomdata-bestand.
Het bestaande standaard boomdata-bestand is overschreven.
De standaard scan map kan overstemd worden met omgevingsvariabele "WCDSCAN". Zie sectie OMGEVINGSVARIABELEN.
Unix:
wcd -S / wcd -S /home -A /etc -A /usr
DOS/Windows:
wcd -S c:/ wcd -S c: -A d: -A \\server\share
Met de Windows versies kan men alle gedeelde mappen scannen van een Windows LAN server door iets een typen als: "wcd -S \\servernaam".
Wcd verwijderd standaard "/tmp_mnt/" van de treffer. Map "/tmp_mnt" wordt gebruikt door de 'auto-mounter'. Dit gedrag kan uitgeschakeld worden met de -t optie.
In de standaard NCD stijl opmaak zet de -Ta optie het springen naar ongerelateerde mappen uit.
In compacte-boom-modus maakt de alternatieve mode de navigatie gelijk aan de navigatie in GUI bestandsverkenners zoals de Windows Verkenner of Linux KDE Konqueror. Omhoog en Omlaag drukken beweegt de geselecteerde map één regel op en neer. Links drukken vouwt eerst de sub-mappen in en de volgende beweging naar links gaat echt naar links.
U kunt onmiddellijk tussen standaard en alternatief navigeren schakelen door <Shift-A> te drukken.
Wanneer alternatieve navigatie aan staat, ziet u een "A" in de rechter onderhoek.
De standaard niet-gecentreerde weergave, die boombeweging minimaliseert, is gelijk aan hoe het in de originele NCD was.
Wanneer CJK modus actief is, ziet u een "C" in de rechter onderhoek.
Op Unix/Cygwin wordt aangenomen dat de basismap voor de thuismap voor gebruikers "/home" is. Wcd zal zoeken naar "/home/GEBRUIKER/.treedata.wcd" en "/home/GEBRUIKER/.wcd/.treedata.wcd", in deze volgorde, en de eerste lezen die bestaat en leesbaar is. Op DOS/Windows wordt aangenomen dat de basismap voor de thuismap van gebruikers "\\users" is, dus wcd probeert te lezen "\\users\GEBRUIKER\treedata.wcd" en "\\users\GEBRUIKER\.wcd\treedata.wcd".
Wanneer deze optie gebruikt is zal wcd PAD uitsluiten en al zijn sub-mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en vergeleken met absolute paden. Optie -x kan meerder keren gebruikt worden.
wcd -x <path1> -x <path2> -s
Optie -x moet vooraf gaan aan elke scan optie (-s, -S, +S, -A, -E).
Op DOS/Windows systemen moet men de schijfletter specificeren afhankelijk van of omgevingsvariabele HOME or WCDHOME gedefinieerd is. Wanneer HOME of WCDHOME gedefinieerd is moet men de schijfletter specificeren. Een voorbeeld:
wcd -x c:/temp -S c:
Specificeer anders geen schijfletter.
wcd -x /temp -s
Wanneer deze optie gebruikt is zal wcd alle paden genoemd in BESTAND uitsluiten en al hun sub-mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en vergeleken met absolute paden, een pad per regel. Wees bewust dat wcd spaties aan het begin of einde op een regel niet zal negeren, omdat het geldige tekens zijn in een mapnaam. Optie -xf can meerdere keren gebruikt worden. Wanneer men alle verbannen paden wil uitsluiten van scannen zou het volgende gedaan kunnen worden (voorbeeld voor wcd op Unix):
wcd -xf ~/.ban.wcd -s
Jokertekens worden ondersteund. Om bijvoorbeeld al uw Subversion mappen met administratieve bestanden uit te sluiten, voeg een regel toe met "*/.svn".
Optie -xf moet vooraf gaan aan elke scan optie (-s, -S, +S, -A, -E).
Wcd zal de gebruiker geen ja/nee vraag stellen, maar neemt aan dat de gebruiker ja antwoordt op alle vragen. Dit kan gebruikt worden in combinatie met optie -rmtree. Deze optie moet voorafgaand gebruikt worden aan opties die tot ja/nee vragen kunnen leiden.
De standaard grootte van de stapel is 10. Stapelwerking kan uitgezet worden door de grootte op 0 in te stellen. Deze optie moet voorafgaand aan elke stapel optie (-, +, =) gebruikt worden. Anders wordt de stapelgrootte teruggezet naar de standaard 10.
Een correcte opdracht is:
wcd -z 50 -
De nieuwe stapelgrootte zal 50 zijn, wcd gaat een map terug. Een foute opdracht is:
wcd - -z 50
Wcd gaat een map terug, de stapel krijgt de standaard grootte 10. -z 50 wordt genegeerd.
Voeg deze optie als eerste toe aan uw wcd alias of functie. B.v. voor een POSIX compatibele shell zou dit zijn:
wcd () { wcd.exe -z 50 "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go }
Ga een map terug. Opdracht "wcd -" gaat een map terug. Voeg een nummer toe om meer mappen terug te gaan. B.v. opdracht "wcd -3". De stapel is cyclisch.
Ga een map vooruit. Opdracht "wcd +" gaat een map vooruit. Voeg een nummer toe om meerdere mappen vooruit te gaan. B.v. opdracht "wcd +2". De stapel is cyclisch.
Gebruik deze optie als u niet meer weet waar u in de stapel zit. De stapel wordt getoond en u kan een nummer kiezen. De huidige plaats in de stapel is gemarkeerd met een sterretje "*".
De huidige werkmap in een Unix shell kan alleen veranderd worden door de ingebouwde cd(1) opdracht. Daarom wordt het programma altijd aangeroepen door een functie of alias. De functie of alias leest een script (go-script) in dat gegenereerd is door het wcd programma. Wcd kan alleen werken nadat de functie of alias gedefinieerd is.
Een andere belangrijke invloed op uw installatie is de definitie van de omgevingsvariabelen HOME en WCDHOME. Zie paragraaf OMGEVINGSVARIABELEN.
Voor een POSIX shell (ksh, bash, zsh, etc) op Unix, Linux, Cygwin, of MSYS, voeg de volgende functie toe aan het shell opstartbestand (b.v. Bash gebruikt "$HOME/.bashrc"):
wcd () { PAD/wcd.exe "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go }
Vervang PAD door de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een nieuwe shell.
De locatie van het go-script "wcd.go" is anders per shell.
Wcd voor DJGPP DOS bash heeft een andere functie nodig. Het go-script wordt niet in map "bin" geschreven, en wanneer WCDHOME en HOME beide niet gedefinieerd zijn wordt het go-script geschreven in c:/.
DOS bash:
wcd () { PAD/wcdbash.exe "$@" . ${WCDHOME:-${HOME:-"c:"}}/wcd.go }
OS/2 bash:
wcd () { PAD/wcdos2bash.exe "$@" . ${WCDHOME:-${HOME:-"c:"}}/wcd.go }
De WinZsh versie van wcd is ook een beetje anders. Het go-script wordt nooit in c:/ geschreven.
wcd () { PAD/wcdwin32zsh.exe "$@" . ${WCDHOME:-${HOME}}/wcd.go }
Zie paragraaf BESTANDEN voor meer informatie.
Voeg de volgende alias toe aan het shell opstartbestand "$HOME/.cshrc" of "$HOME/.tcshrc":
if ( ${?WCDHOME} ) then alias wcd "PAD/wcd.exe \!* ; source $WCDHOME/bin/wcd.go" else alias wcd "PAD/wcd.exe \!* ; source $HOME/bin/wcd.go" endif
Vervang PAD door de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een nieuwe shell.
Pak het zip-bestand uit en voeg map "bin" toe aan omgevingsvariabele PATH.
In Windows Opdrachtprompt kan een Windows programma niet de huidige werkmap veranderen, maar een .bat bestand kan dat wel. Het batch script "wcd.bat" draait het wcd programma dat een nieuw batch script "wcdgo.bat" genereert. Daarna start "wcd.bat" "wcdgo.bat" die feitelijk de map verandert.
In een Windows VISTA en hoger Opdrachtprompt kan men beperkte toegang hebben tot mappen. Om toegang tot meer mappen te verkrijgen heeft men beheerdersrechten nodig. U kunt een Opdrachtprompt met beheerdersrechten verkrijgen door rechts te klikken op het Opdrachtprompt icoon en dan te selecteren Als Administrator uitvoeren.
Voeg de volgende functie toe aan uw PowerShell gebruikersprofiel. De locatie van dit profiel is opgeslagen in de $profile variabele. Het is vereist dat omgevingsvariabele HOME of WCDHOME gedefinieerd is.
function wcd { PAD\wcdwin32psh.exe $args & $env:HOME\wcdgo.ps1 }
Vervang PAD met de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Start een nieuwe PowerShell. Wcd voor PowerShell ondersteund alleen de bestandssysteem 'provider'. Geen andere 'providers'.
In een OS/2 Opdrachtprompt (cmd.exe) kan een OS/2 programma niet de huidige werkmap veranderen. Dat is waarom wcd een opdracht-script genereert "wcdgo.cmd" welke uitgevoerd moet worden in de huidige shell. Het script "wcd.cmd" voert eerst "wcdos2.exe" uit, die vervolgens het "wcdgo.cmd" script creëert. Daarna voert "wcd.cmd" het "wcdgo.cmd" script uit.
export LANG=nl Nederlands export LANG=nl_NL Nederlands, Nederland export LANG=nl_BE Nederlands, België export LANG=es_ES Spaans, Spanje export LANG=es_MX Spaans, Mexico export LANG=en_US.iso88591 Engels, VS, Latin-1 codering Voor een complete lijst van taal- en landcodes zie de gettext(1) handleiding: L<http://www.gnu.org/software/gettext/manual/gettext.html#Language-Codes> Op Unix-systemen kunt u de opdracht locale(1) gebruiken om specifieke taalregio-informatie te verkrijgen.
Als u een taal kiest die niet beschikbaar is, worden de standaard Engelse berichten gebruikt.
Als u wcd geïnstalleerd heeft in een andere map dan de standaard map kan het nodig zijn om omgevingsvariabele WCDLOCALEDIR te definiëren om te wijzen naar de locale map.
Een voorbeeld voor Windows cmd:
set WCDLOCALEDIR=c:/my_prefix/share/locale
Een voorbeeld voor een POSIX shell:
export WCDLOCALEDIR=$HOME/share/locale
De sortering geeft prioriteit aan omgevingsvariabele LC_COLLATE boven LANG. Wanneer u LC_COLLATE gelijk maakt aan "C" of "POSIX", wordt sortering met lokalisatie uitgeschakeld. Bijvoorbeeld als u Nederlandse taal wilt, maar geen Nederlandse sortering, dan kunt u iets doen als:
export LANG=nl_NL export LC_COLLATE=C
export LC_CTYPE=en_US.UTF-8
Er zijn twee groepen van codetabellen, DOS codetabellen (OEM) en Windows codetabellen (ANSI). De standaard codering voor Windows, wanneer geconfigureerd met westerse regionale instellingen, is ANSI CP1252. Windows programma's, bijvoorbeeld kladblok, gebruiken deze standaard systeem ANSI codetabel. De Windows Opdrachtprompt gebruikt standaard een OEM codetabel (CP437 of CP850) voor compatibeliteit met DOS programma's. Als u een DOS versie van Wcd in een Windows Opdrachtprompt gebruikt zal het werken, vanwege de DOS codetabel. Maar de DOS versie van wcd ontbeert ondersteuning voor lange mapnamen en netwerkschijven op Windows.
De Windows versie van wcd is een echt Windows programma en zal de Windows systeem ANSI codetabel gebruiken. Dus op een Westers regionale Windows zal het de codetabel CP1252 gebruiken voor directory namen en berichten. Om een consistente uitvoer te verkrijgen, onafhankelijk van de ingestelde codetabel, vertalen alle Windows versies van wcd ANSI uitvoer naar Unicode uitvoer in de Opdrachtprompt en PowerShell.
Het Opdrachtprompt rastertypefont ondersteunt alleen de originele OEM codetabel van Windows, dus u moet het Opdrachtprompt font veranderen naar Lucida Console om Unicode (en ANSI) tekens correct te laten verschijnen.
Niet-Unicode versies van Wcd voorafgaande aan versie 5.2.0 gebruiken gewone ANSI uitvoer. Voor deze oude versie moet de codetabel van de Opdrachtprompt gelijk gemaakt worden aan de systeem codetabel (naar 1252) om wcd voor Windows goed te laten werken met speciale tekens zoals geaccentueerde tekens of een euroteken.
De Windows systeem codetabel kan veranderd worden via het Configuratiescherm Klok, taal en land/regio opties. De Windows Opdrachtprompt codetabel wordt veranderd met de "chcp" opdracht.
Wanneer u "wcd -V" typet, wordt de actuele tekencodering getoond die door wcd gebruikt wordt. Type opdracht "chcp" op de actieve codetabel van de Opdrachtprompt te tonen.
Wcd heeft optioneel ondersteuning voor Unicode. Om te zien of wcd gebouwd is met Unicode ondersteuning type "wcd -V". Als uw terminal en font het ondersteunen, zou u een euroteken en Chinese tekens (betekenis: "Chinees") moeten zien.
Wcd is zacht omgezet naar Unicode. In de kern behandelt wcd alle data als een stroom van bytes. Alleen de regels die op het scherm geprint worden, worden terstond omgezet naar Unicode brede tekens. Wcd hangt volledig af van libc functies en heeft geen UTF-8 specifieke broncode. Zie ook <http://www.cl.cam.ac.uk/~mgk25/unicode.html>
Wcd heeft optioneel ondersteuning voor Unicode vergelijkingen met normalisatie. Om er achter te komen of Wcd normalisatie ondersteunt type "wcd -V". Wcd met Unicode normalisatie ondersteuning vergelijkt Unicode namen gebaseerd op compatibele gelijkwaardigheid. Zonder Unicode normalisatie worden treffen namen een gelijke wanneer ze binair gelijk zijn. Zie ook <http://en.wikipedia.org/wiki/Unicode_normalization>
UTF-8 op Unix/Linux
Om UTF-8 tekens te zien moet uw terminal ook UTF-8 ondersteunen. De xterm versie die meekomt met XFree86 4.0 of hoger bevat UTF-8 ondersteuning. Om het te activeren, start xterm(1) in een UTF-8 taalregio en gebruik een font met iso10646-1 codering, bijvoorbeeld met
LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'
Moderne uitgaves van GNU/Linux ondersteunen standaard UTF-8. Andere multi-byte tekencoderingen zouden ook moeten werken, maar dat is niet getest.
Wcd veronderstelt dat de boomdata-bestanden gecodeerd zijn in de lokale tekencodering. Er worden geen Byte Order Marks geschreven in de boomdata-bestanden.
UTF-16 op Windows
Op Windows wordt Unicode in alle versies van PowerShell ondersteund, en in Windows Opdrachtprompt op Windows 7 (of hoger). Unicode werkt ook in Take Command of TCC/LE gemaakt door JP Software, dat gebruikt kan worden op oudere Windows versies (XP/Vista).
In Windows zijn alle mapnamen op schijf gecodeerd in UTF-16 Unicode. Voor niet-Unicode Windows programma's worden de tekens vertaald naar de standaard ANSI codetabel. Voor tekens die geen onderdeel zijn van de regionale instelling is de vertaling niet mogelijk en niet-Unicode programma's printen in plaats daarvan een vraagteken of een verkeerd teken.
Wcd met Unicode ondersteuning leest de UTF-16 gecodeerde mappennamen en zet ze intern om naar UTF-8. Alle boomdata-bestanden zijn gecodeerd in UTF-8 en niet compatibel met de niet-Unicode versie van Wcd. Wcd zal een go-script aanmaken gecodeerd in UTF-8.
Alle versies van Windows PowerShell zijn in staat om in UTF-8 gecodeerde scripts te draaien, indien het script is voorzien van een UTF-8 BOM.
Sinds Windows 7 is het mogelijk om in Windows Opdrachtprompt van map te veranderen met een batch script naar een map met Unicode tekens in de naam. De mapnaam moet gecodeerd zijn in UTF-8, en het batch script moet geen BOM bevatten. De actieve codetabel van de Opdrachtprompt moet gezet zijn op 65001 (UTF-8) vooraf aan de cd opdracht. Wcd voor Opdrachtprompt creëert zo'n go-script "wcdgo.bat". Eerst verandert het de codetabel naar 65001, verandert dan de map, en tenslotte wordt de codetabel terug gezet naar de originele waarde.
U moet het font instellen op True Type Lucida Console (niet raster type font) wanneer de letters niet correct verschijnen.
De niet-Unicode Windows versie van Wcd kan Unicode boomdata-bestanden lezen sinds versie 5.2.0, indien er een Byte Order Mark (BOM) in het bestand zit (zie <http://en.wikipedia.org/wiki/Byte_order_mark>), maar kan niet veranderen naar mappen met Unicode tekens in de naam die geen onderdeel zijn van de standaard systeem ANSI codetabel. De Unicode Windows versie van wcd schrijft een BOM in het UTF-8 gecodeerde boomdata-bestand sinds versie 5.2.0, wat ze ook leesbaar maakt voor kladblok.
UTF-8 in Cygwin
Cygwin ondersteunt Unicode sinds versie 1.7. De Cygwin laag zorgt er voor dat de Windows UTF-16 Unicode namen vertaald worden naar UTF-8. Dus programma's, zoals wcd, hoeven hier niet bewust van te zijn en kunnen werken gebruikmakend van UTF-8 codering als op Unix/Linux. Stel de tekencodering in op UTF-8 met de LANG of LC_CTYPE omgevingsvariabele. Het kan nodig zijn dat u de schijven opnieuw moet scannen. U dient het font in te stellen op True Type Lucida Console (niet raster type font) wanneer u de standaard Cygwin console gebruikt.
De Cygwin versie gedraagt zich exact gelijk aan de Unix versie van wcd. Er wordt geen BOM geschreven in de boomdata-bestanden, en er wordt aangenomen dat ze gecodeerd zijn in de Cygwin lokalisatie tekencodering.
Wanneer omgevingsvariabele WCDHOME ingesteld is zal wcd WCDHOME gebruiken in plaats van HOME. Alle "*.wcd" bestanden zijn tekstbestanden. Ze kunnen bewerkt worden met een tekstbewerker. De Windows Opdrachtprompt versie gedraagt zich als de DOS versie. De Cygwin versie van wcd gedraagt zich als de Unix versie.
DOS: \treedata.wcd of %HOME%\treedata.wcd Unix: $HOME/.treedata.wcd
DOS: \extra.wcd of HOME%\extra.wcd Unix: $HOME/.extra.wcd
DOS: \ban.wcd of %HOME%\ban.wcd Unix: $HOME/.ban.wcd
DOS: \alias.wcd of %HOME%\alias.wcd Unix: $HOME/.alias.wcd
DOS: c:\stack.wcd of %HOME%\stack.wcd Unix: $HOME/.stack.wcd
De naam van het stapelbestand kan veranderd worden met omgevingsvariabele WCDSTACKFILE. Zie paragraaf OMGEVINGSVARIABELEN.
DOS bash: c:/wcd.go of $HOME/wcd.go Windows Command Prompt: c:\wcdgo.bat of %HOME%\wcdgo.bat Windows PowerShell: $env:HOME\wcdgo.ps1 WinZsh: $HOME/wcd.go Cygwin/MSYS: $HOME/bin/wcd.go OS/2 Opdrachtprompt: c:\wcdgo.cmd of %HOME%\wcdgo.cmd OS/2 bash: c:/wcd.go or $HOME/wcd.go Unix: $HOME/bin/wcd.go
DOS: PAD\rtdata.wcd Unix: PAD/.rtdata.wcd
HOME bepaalt ook waar te beginnen met het scannen van de schijf wanneer optie -s gebruikt wordt. Dit kan overstemd worden met omgevingsvariabele WCDSCAN.
Voor de Unix, Cygwin, Windows PowerShell, WinZsh en MSYS versie is het vereist dat HOME of WCDHOME ingesteld is. Voor de andere versies van wcd is het gebruik van deze variabelen optioneel.
Wanneer HOME ingesteld is op DOS/Windows, zal wcd al zijn bestanden (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in map HOME plaatsen. Het gedrag van wcd is dan gelijk aan de Unix versie van wcd. Wcd zal de schijf standaard scannen vanaf HOME. Schijven worden niet automatisch gescant door er naar te veranderen. Dat moet wcd expliciet opgedragen worden. B.v.:
wcd -S c: -A d: -A e:
Vergelijken van mappen is nu globaal over alle gescande schijven.
In wcd versies voorafgaand aan 5.1.5 veranderde WCDHOME ook de standaard scan-map. Dit is veranderd. Sinds versie 5.1.5 verandert WCDHOME niet de standaard scan-map. Zie optie -s. Gebruik vanaf versie 5.1.5 omgevingsvariabele WCDSCAN om de standaard scan-map te overstemmen.
Voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt:
set WCDHOME=C:\Users\erwin\wcd
Een voorbeeld voor POSIX type shells:
export WCDHOME="$HOME/.wcd"
Een voorbeeld voor Csh type shells:
setenv WCDHOME "$HOME/.wcd"
Voorbeelden voor DOS, Windows, OS/2 Opdrachtprompt:
set WCDSCAN=C:\Users\erwin;D:\data set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX
Een voorbeeld voor POSIX type shells:
export WCDSCAN="$HOME:/projectdisk/projectX"
Een voorbeeld voor Csh type shells:
setenv WCDSCAN "$HOME:/projectdisk/projectX"
Een voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt:
set WCDFILTER=projects;doc
Een voorbeeld voor POSIX type shells:
export WCDFILTER="projects:doc"
Een voorbeeld voor Csh type shells:
setenv WCDFILTER "projects:doc"
Een voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt:
set WCDEXCLUDE=*/windows;*/temp;*CVS
Een voorbeeld voor POSIX type shells:
export WCDEXCLUDE="/dev:/tmp:*CVS"
Een voorbeeld voor Csh type shells:
setenv WCDEXCLUDE "/dev:/tmp:*CVS"
Om een uniek tijdgebaseerde YYYYMMDD-HHMMSS bestand voor elke geopende interactieve shell te gebruiken.
export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)
Voor een stapel per xterm(1), gebruik de xterm omgevingsvariabele WINDOWID:
export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID
Voor GNU screen(1), gebruik een stapel per scherm:
export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW
set PDC_RESTORE_SCREEN=1
Wcd laat maar een kleine buffer opslaan. Daardoor is het niet altijd mogelijk om alles te herstellen. Er kan wat rommel in de console geprint worden als wcd afsluit wanneer u een grote bufferbreedte heeft ingesteld.
sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1),
Wcd is geschreven door Erwin Waterlander <waterlan@xs4all.nl>
Project beginpagina <http://waterlan.home.xs4all.nl/>
SourceForge: <http://sourceforge.net/projects/wcd/>
De opmaak van de handleiding was verzorgd door Jari Aalto <jari.aalto@cante.net>.
NCD was oorspronkelijk geschreven door Brad Kingsbury voor Peter Norton's "Norton Utilities" omstreeks 1987. Zie ook <http://www.softpanorama.org/OFM/norton_change_directory_clones.shtml>
2019-08-14 | wcd |