WSLã®ããã±ãŒãžç®¡çã確èªãã
Linuxã䜿ã£ãŠããæ¹ãBUW(Bash on Ubuntu on Windows)ã䜿ã£ãŠããŠäžæè°ã«æãã®ã¯ãããã±ãŒãžã®æŽæ°ã§ã¯ãªãã ããããWSL(Windows Subsystem for Linux)ã¯ãUbuntuãšããLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ããã®ãŸãŸåã蟌ãã§ãããããDebian GNU/Linuxç³»ã®ããã±ãŒãžç®¡çã³ãã³ãã§ãããapt-getãã䜿çšãããããæ°ããªãaptãã³ãã³ããã€ã³ã¹ããŒã«ãããŠããããæ £äŸçãªæäœãè¡ãã®ã§ããã°ãåè ã®æ¹ãåèè³æãå€ãèŠããããã
äžå³ã®ãšããBUWããä»ã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ãšåããããã±ãŒãžãæŽæ°ã§ãããã ããæŽæ°ããããã±ãŒãžã®äžã«ã¯ã»ãã¥ãªãã£ããŒã«ãå¡ãã ãã®ããããããæ©æã®é©çšãå¿ èŠãªãã±ãŒã¹ãå°ãªããªããããã±ãŒãžã®èªåæŽæ°ã¯ãcron-aptãããã±ãŒãžãªã©ã§å®çŸå¯èœãªããããWSLã¯ãéçºè ã䜿çšããLinuxç°å¢ã§ããããµãŒããŒæ©èœã¯å¯Ÿè±¡å€ããšMicrosoftãæèšããŠãããšãããçŸããŒãžã§ã³ã¯æå®æéã«ã³ãã³ããã·ã§ã«ã¹ã¯ãªãããå®è¡ããcrontabã¯äœ¿çšã§ããªãã
ããã§Microsoftãçšæããã®ããAptPackageIndexUpdateããšããã¿ã¹ã¯ã ãã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©ãŒã®ã\Microsoft\Windows\Windows Subsystem for Linuxããã©ã«ããŒã«ç»é²ãããAptPackageIndexUpdateã¯ãå®è¡ã¿ã€ãã³ã°ããäžæã ããã%comspec% /c start "AptPackageIndexUpdate" /min %windir%\System32\LxRun.exe /updateããšããã³ãã³ããå®è¡ããŠããã
![]() |
WSLãæå¹ã«ãããšã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©ãŒã«çµã¿èŸŒãŸãããAptPackageIndexUpdateã |
ãLxRun.exeãã¯ç¬¬4åã§ã玹ä»ããããã«ãWSLã®ã€ã³ã¹ããŒã«ãåã€ã³ã¹ããŒã«ãæ¢å®ãŠãŒã¶ãŒã®èšå®ãè¡ãã³ãã³ãã ããªãã·ã§ã³ã®1ã€ãupdateããããåããããã«ãããã±ãŒãžã®æŽæ°ãè¡ãããã ããçè ã®ç°å¢(Windows 10 Insider Preview ãã«ã14905.1000)ã§ã¯ããšã©ãŒã³ãŒã0x41303ãçºçããŠã¿ã¹ã¯ãå®è¡ããŠããæ°é ããªãã
![]() |
ãlxrunãã³ãã³ããå®è¡ããç¶æ ãå©çšå¯èœãªããã±ãŒãžã®äžèŠ§æŽæ°ãè¡ããupdateããªãã·ã§ã³ãçšæãããŠãã |
ããã§ãlxrun /updateããæåå®è¡ããŠã¿ããšããã確ãã«å©çšå¯èœãªããã±ãŒãžã®äžèŠ§ã¯æŽæ°ããããã®ã®ãèå¿ã®ããã±ãŒãžãããŠã³ããŒãããæ°é ããªããäžå³ã®ã³ãã³ããã«ãã«ããããã±ãŒãžã®ã€ã³ããã¯ã¹ãæŽæ°ããããšããæžãããŠããªããããæ£ããåäœãšæããããã ããèå¿ã®ããã±ãŒãžãã€ã³ã¹ããŒã«ãããªãã®ã§ã¯æå³ããªããWSLã¯ããŒã¿çã§ãããUbuntuèªèº«ã14.04 LTSãšå€ãããŒãžã§ã³ãçšããŠãããææã¯äžæãªãããæ£åŒçãªãªãŒã¹æã¯ãWindows 10äžã§ããã±ãŒãžã®èªåæŽæ°ãªã©ãåäœããã®ã§ã¯ãªãã ãããã
![]() |
ãlxrun /updateããšæåã§å®è¡ãããšã確ãã«ããã±ãŒãžã®äžèŠ§ãæŽæ°ããã |
æ£ããã£ããã¹ã¯ããããçä»ãã
ããŠãä»åããæ°ããã·ã§ã«ã¹ã¯ãªããã«ãã£ã¬ã³ãžãããããã€ãã©ããæ åœç·šéè ãšæã¡åããããåæ°ãæã¡èŸŒãã§ããããŒãPCãžäœæ°ã«ãªãç®ãåãããšããã¹ã¯ãããã«ååã®åçš¿ãã·ã§ã«ã¹ã¯ãªãããç»åãã¡ã€ã«ãæ£ä¹±ããŠããã®ã ããã¹ã¯ããã管çã¯äººã«ãã£ãŠåå·®äžå¥ã§ã䜿çšé »åºŠã®é«ãã¢ããªã±ãŒã·ã§ã³ã®ã·ã§ãŒãã«ãããã¡ã€ã«ã䞊ã¹ãŠããæ¹ãããã°ãäœæ¥äžã®ãã©ã«ããŒãå±±ã»ã©äžŠã¹ãŠããæ¹ããããããèšãçè ã¯é·å¹Žãã¹ã¯ããããäœæ¥é åãšèªç¥ããŠãããããè±çš¿ããæç¹ã§ç¹å®ã®ãã©ã«ããŒã«ç§»åããã¿ã€ãã ã
ããã§æ åœç·šéè ã«ææ¡ããã®ãããã¹ã¯ãããäžã®ãã¡ã€ã«ãèªåæŽçããã·ã§ã«ã¹ã¯ãªããã§ãããæ§é èªäœã¯ç°¡åã§ãã¹ã¯ãããã«äžŠã¶ãã¡ã€ã«ãæ¡åŒµåããŒã¹ã§ãµããã©ã«ããŒã«æ¯ãåããŠããã°ãããã¡ããã©æ¬é£èŒç¬¬1åããäœæããŠããã·ã§ã«ã¹ã¯ãªããã«é¡äŒŒããè¡ãã¢ã¯ã·ã§ã³ã倿Žããã°ç°¡åã«æžãããã ããã®æ¡ä»¶ãšããŠæåã«æ±ºããŠããããã®ããã·ã§ã«ã¹ã¯ãªããã®ä»æ§ã§ããã
ãŸããæ¡åŒµåã.jpgããªã©ãæã€ãã¡ã€ã«ã¯ãPhotosããã©ã«ããŒã«ç§»åãæ¡åŒµåã.zipããã.exeããæã€ãã¡ã€ã«ã¯å±éãå®è¡ããåŸã¯äžèŠãªååšã«ãªãã¯ãã ããä»åã¯ãPackagesããã©ã«ããŒã«ç§»åãæ¡åŒµåã.txtãã.pdfããªã©ã¯ãDocumentsããã©ã«ããŒã«ç§»åããããã ããåè¿°ã®ããã«ãããžã§ã¯ãããšã«ãµããã©ã«ããŒãäœæããå Žåããã¢ããªã±ãŒã·ã§ã³ã®ã·ã§ãŒãã«ãããã¡ã€ã«ã䞊ã¹ãæ¹ãå€ãããšãèžãŸããæ¡åŒµåã.lnkãããã©ã«ããŒã¯ç§»å察象å€ãšããããšã«ãããããã§ã¯ããã€ãã©ããvimãªã©ã§äžèšã®å 容ãäœæããchmodã³ãã³ãã§å®è¡æš©éãä»å ããŠã»ããã
#!/bin/bash
BaseDir="/mnt/c/Users/kaz/Desktop/Test"
PhotosDir="./Photos"
PackagesDir="./Packages"
DocDir="./Documents"
cd $BaseDir
for File in *; do
case ${File##*.} in
jpg|JPG|png|PNG )
if [ ! -d $PhotosDir ]; then
mkdir $PhotosDir
fi
find . -maxdepth 1 \( -iname '*.jpg' -or -iname '*.png' \) -exec mv {} -t $PhotosDir \;
;;
zip|ZIP|exe|EXE )
if [ ! -d $PackagesDir ]; then
mkdir $PackagesDir
fi
find . -maxdepth 1 \( -iname '*.zip' -or -iname '*.exe' \) -exec mv {} -t $PackagesDir \;
;;
txt|TXT|pdf|PDF )
if [ ! -d $DocDir ]; then
mkdir $DocDir
fi
find . -maxdepth 1 \( -iname '*.txt' -or -name '*.pdf' \) -exec mv {} -t $DocDir \;
;;
*) ;;
esac
done
ä»åã¯å®éšç°å¢ãšããŠWindows 10ã®ãã¹ã¯ããããã©ã«ããŒã«ãTestããã©ã«ããŒãäœæãããã®äžã«ãããŒãã¡ã€ã«ãçšæããŠæ€èšŒãè¡ã£ãŠããããã®ããã3è¡ç®ã«ãã倿°ãBaseDirãã®å 容ã¯ã䜿ãã®ç°å¢ã«åãããŠå€æŽããŠã»ãããåºæ¬çã«ã¯æµãã¯ä»¥å玹ä»ããã·ã§ã«ã¹ã¯ãªãããšåæ§ã«ã倿°BaseDiräžã®ãã£ã¬ã¯ããª(ãã©ã«ããŒ)ã®ãã¡ã€ã«åããæ¡åŒµåãåãåºããcaseæã§åŠçãæ¯ãåããŠãã(10ïœ29è¡)ã
ä»åã®ãã€ã³ãã¯15/21/27è¡ç®ã§çšããŠãããfindãã³ãã³ãã ãå©çšè ãæå®ããæ¡ä»¶ã«ããããããã¡ã€ã«ãæ¢ãã³ãã³ãã ããä»åã¯å€§æåå°æåãç¡èŠããã-inameããšæ¡ä»¶æŒç®åã§ããã-orããªãã·ã§ã³ãçµã¿åãããåãã«ããŽãªãŒãšãªãæ¡åŒµåãããã¯ã¢ããããŠããããã®çµæãã-execããªãã·ã§ã³ã§ãmvãã³ãã³ãã«æž¡ãä»çµã¿ã ããªããã-maxdepthãã¯æ€çŽ¢éå±€ã瀺ããä»åã®äŸã§ã¯1éå±€ç®ãŸã§æ€çŽ¢ãè¡ã£ãŠããã
ãã1ã€ã®ãã€ã³ãã¯mvã³ãã³ãã®ã-tããªãã·ã§ã³ãã--target-directoryããšèšè¿°ãããã®ãªãã·ã§ã³ã¯ããã¹ãŠã®ãœãŒã¹åŒæ°ããã£ã¬ã¯ããªã«ç§»åãããšãããã®ãä»åã®ã·ã§ã«ã¹ã¯ãªãããæ€èšŒããŠãããšãããç§»åå ãšãªããã£ã¬ã¯ããªããã¡ã€ã«ãšããŠäžæžãããçŸè±¡ã確èªããããããå®å šçãšããŠä»äžããŠãããã¡ãªã¿ã«ã·ã§ã«ã¹ã¯ãªãããäœæãããã©ã«ããŒåã倿Žããå Žåã¯5ïœ7è¡ç®ã®å€æ°å€ã倿Žããæ¡åŒµåã®ãã¿ãŒã³ãå¢ããå Žåã¯findã³ãã³ãã§æå®ãã-inameãªãã·ã§ã³ã远å ãããšããã
ããŠãåè¿°ã®ãšããç¹å®ã®æ¡åŒµåãæã€ãã¡ã€ã«ããã«ããŽãªãŒããšã«äœæãããã©ã«ããŒã«ç§»åããŠããããã¿ã€ããã¹ãªã©ã§ãã°ãäŸµå ¥ãã倧äºãªãã¡ã€ã«ãæ¶å€±ããŠããŸãå¯èœæ§ã¯æãåããªãããã®éã¯ãmvãã³ãã³ãããcpãã«çœ®ãæããŠãããã¹ãããããšã§ã"ç§»å"ã"ã³ããŒ"ã«å€åããã®ã§ã·ã§ã«ã¹ã¯ãªããã®åäœã確èªã§ãããæ¬¡åã¯ã·ã§ã«ã¹ã¯ãªããã®æé©åãšãã¡ãã£ãšããã¢ã€ãã£ã¢ãå ããŠå©äŸ¿æ§ãåäžãããŠã¿ããã
é¿ä¹ 接è¯å(Cactus)















