亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? directory-info.sh

?? 一本完整的描述Unix Shell 編程的工具書的所有范例
?? SH
字號:
#! /bin/bash# directory-info.sh# Parses and lists directory information.# NOTE: Change lines 273 and 353 per "README" file.# Michael Zick is the author of this script.# Used here with his permission.# Controls# If overridden by command arguments, they must be in the order:#   Arg1: "Descriptor Directory"#   Arg2: "Exclude Paths"#   Arg3: "Exclude Directories"## Environment Settings override Defaults.# Command arguments override Environment Settings.# Default location for content addressed file descriptors.MD5UCFS=${1:-${MD5UCFS:-'/tmpfs/ucfs'}}# Directory paths never to list or enterdeclare -a \  EXCLUDE_PATHS=${2:-${EXCLUDE_PATHS:-'(/proc /dev /devfs /tmpfs)'}}# Directories never to list or enterdeclare -a \  EXCLUDE_DIRS=${3:-${EXCLUDE_DIRS:-'(ucfs lost+found tmp wtmp)'}}# Files never to list or enterdeclare -a \  EXCLUDE_FILES=${3:-${EXCLUDE_FILES:-'(core "Name with Spaces")'}}# Here document used as a comment block.: &lt;&lt;LSfieldsDoc# # # # # List Filesystem Directory Information # # # # ###	ListDirectory "FileGlob" "Field-Array-Name"# or#	ListDirectory -of "FileGlob" "Field-Array-Filename"#	'-of' meaning 'output to filename'# # # # #String format description based on: ls (GNU fileutils) version 4.0.36Produces a line (or more) formatted:inode permissions hard-links owner group ...32736 -rw-------    1 mszick   mszicksize    day month date hh:mm:ss year path2756608 Sun Apr 20 08:53:06 2003 /home/mszick/coreUnless it is formatted:inode permissions hard-links owner group ...266705 crw-rw----    1    root  uucpmajor minor day month date hh:mm:ss year path4,  68 Sun Apr 20 09:27:33 2003 /dev/ttyS4NOTE: that pesky comma after the major numberNOTE: the 'path' may be multiple fields:/home/mszick/core/proc/982/fd/0 -> /dev/null/proc/982/fd/1 -> /home/mszick/.xsession-errors/proc/982/fd/13 -> /tmp/tmpfZVVOCs (deleted)/proc/982/fd/7 -> /tmp/kde-mszick/ksycoca/proc/982/fd/8 -> socket:[11586]/proc/982/fd/9 -> pipe:[11588]If that isn't enough to keep your parser guessing,either or both of the path components may be relative:../Built-Shared -> Built-Static../linux-2.4.20.tar.bz2 -> ../../../SRCS/linux-2.4.20.tar.bz2The first character of the 11 (10?) character permissions field:'s' Socket'd' Directory'b' Block device'c' Character device'l' Symbolic linkNOTE: Hard links not marked - test for identical inode numberson identical filesystems.All information about hard linked files are shared, exceptfor the names and the name's location in the directory system.NOTE: A "Hard link" is known as a "File Alias" on some systems.'-' An undistingushed fileFollowed by three groups of letters for: User, Group, OthersCharacter 1: '-' Not readable; 'r' ReadableCharacter 2: '-' Not writable; 'w' WritableCharacter 3, User and Group: Combined execute and special'-' Not Executable, Not Special'x' Executable, Not Special's' Executable, Special'S' Not Executable, SpecialCharacter 3, Others: Combined execute and sticky (tacky?)'-' Not Executable, Not Tacky'x' Executable, Not Tacky't' Executable, Tacky'T' Not Executable, TackyFollowed by an access indicatorHaven't tested this one, it may be the eleventh characteror it may generate another field' ' No alternate access'+' Alternate accessLSfieldsDocListDirectory(){	local -a T	local -i of=0		# Default return in variable#	OLD_IFS=$IFS		# Using BASH default ' \t\n'	case "$#" in	3)	case "$1" in		-of)	of=1 ; shift ;;		 * )	return 1 ;;		esac ;;	2)	: ;;		# Poor man's "continue"	*)	return 1 ;;	esac	# NOTE: the (ls) command is NOT quoted (")	T=( $(ls --inode --ignore-backups --almost-all --directory \	--full-time --color=none --time=status --sort=none \	--format=long $1) )	case $of in	# Assign T back to the array whose name was passed as $2		0) eval $2=\( \"\$\{T\[@\]\}\" \) ;;	# Write T into filename passed as $2		1) echo "${T[@]}" > "$2" ;;	esac	return 0   }# # # # # Is that string a legal number? # # # # ###	IsNumber "Var"# # # # # There has to be a better way, sigh...IsNumber(){	local -i int	if [ $# -eq 0 ]	then		return 1	else		(let int=$1)  2>/dev/null		return $?	# Exit status of the let thread	fi}# # # # # Index Filesystem Directory Information # # # # ###	IndexList "Field-Array-Name" "Index-Array-Name"# or#	IndexList -if Field-Array-Filename Index-Array-Name#	IndexList -of Field-Array-Name Index-Array-Filename#	IndexList -if -of Field-Array-Filename Index-Array-Filename# # # # #: &lt;&lt;IndexListDocWalk an array of directory fields produced by ListDirectoryHaving suppressed the line breaks in an otherwise line orientedreport, build an index to the array element which starts each line.Each line gets two index entries, the first element of each line(inode) and the element that holds the pathname of the file.The first index entry pair (Line-Number==0) are informational:Index-Array-Name[0] : Number of "Lines" indexedIndex-Array-Name[1] : "Current Line" pointer into Index-Array-NameThe following index pairs (if any) hold element indexes intothe Field-Array-Name per:Index-Array-Name[Line-Number * 2] : The "inode" field element.NOTE: This distance may be either +11 or +12 elements.Index-Array-Name[(Line-Number * 2) + 1] : The "pathname" element.NOTE: This distance may be a variable number of elements.Next line index pair for Line-Number+1.IndexListDocIndexList(){	local -a LIST			# Local of listname passed	local -a -i INDEX=( 0 0 )	# Local of index to return	local -i Lidx Lcnt	local -i if=0 of=0		# Default to variable names	case "$#" in			# Simplistic option testing		0) return 1 ;;		1) return 1 ;;		2) : ;;			# Poor man's continue		3) case "$1" in			-if) if=1 ;;			-of) of=1 ;;			 * ) return 1 ;;		   esac ; shift ;;		4) if=1 ; of=1 ; shift ; shift ;;		*) return 1	esac	# Make local copy of list	case "$if" in		0) eval LIST=\( \"\$\{$1\[@\]\}\" \) ;;		1) LIST=( $(cat $1) ) ;;	esac	# Grok (grope?) the array	Lcnt=${#LIST[@]}	Lidx=0	until (( Lidx >= Lcnt ))	do	if IsNumber ${LIST[$Lidx]}	then		local -i inode name		local ft		inode=Lidx		local m=${LIST[$Lidx+2]}	# Hard Links field		ft=${LIST[$Lidx+1]:0:1} 	# Fast-Stat		case $ft in		b)	((Lidx+=12)) ;;		# Block device		c)	((Lidx+=12)) ;;		# Character device		*)	((Lidx+=11)) ;;		# Anything else		esac		name=Lidx		case $ft in		-)	((Lidx+=1)) ;;		# The easy one		b)	((Lidx+=1)) ;;		# Block device		c)	((Lidx+=1)) ;;		# Character device		d)	((Lidx+=1)) ;;		# The other easy one		l)	((Lidx+=3)) ;;		# At LEAST two more fields#  A little more elegance here would handle pipes,#+ sockets, deleted files - later.		*)	until IsNumber ${LIST[$Lidx]} || ((Lidx >= Lcnt))			do				((Lidx+=1))			done			;;			# Not required		esac		INDEX[${#INDEX[*]}]=$inode		INDEX[${#INDEX[*]}]=$name		INDEX[0]=${INDEX[0]}+1		# One more "line" found# echo "Line: ${INDEX[0]} Type: $ft Links: $m Inode: \# ${LIST[$inode]} Name: ${LIST[$name]}"	else		((Lidx+=1))	fi	done	case "$of" in		0) eval $2=\( \"\$\{INDEX\[@\]\}\" \) ;;		1) echo "${INDEX[@]}" > "$2" ;;	esac	return 0				# What could go wrong?}# # # # # Content Identify File # # # # ###	DigestFile Input-Array-Name Digest-Array-Name# or#	DigestFile -if Input-FileName Digest-Array-Name# # # # ## Here document used as a comment block.: &lt;&lt;DigestFilesDocThe key (no pun intended) to a Unified Content File System (UCFS)is to distinguish the files in the system based on their content.Distinguishing files by their name is just, so, 20th Century.The content is distinguished by computing a checksum of that content.This version uses the md5sum program to generate a 128 bit checksumrepresentative of the file's contents.There is a chance that two files having different content mightgenerate the same checksum using md5sum (or any checksum).  Shouldthat become a problem, then the use of md5sum can be replace by acyrptographic signature.  But until then...The md5sum program is documented as outputting three fields (and itdoes), but when read it appears as two fields (array elements).  Thisis caused by the lack of whitespace between the second and third field.So this function gropes the md5sum output and returns:	[0]	32 character checksum in hexidecimal (UCFS filename)	[1]	Single character: ' ' text file, '*' binary file	[2]	Filesystem (20th Century Style) name	Note: That name may be the character '-' indicating STDIN read.DigestFilesDocDigestFile(){	local if=0		# Default, variable name	local -a T1 T2	case "$#" in	3)	case "$1" in		-if)	if=1 ; shift ;;		 * )	return 1 ;;		esac ;;	2)	: ;;		# Poor man's "continue"	*)	return 1 ;;	esac	case $if in	0) eval T1=\( \"\$\{$1\[@\]\}\" \)	   T2=( $(echo ${T1[@]} | md5sum -) )	   ;;	1) T2=( $(md5sum $1) )	   ;;	esac	case ${#T2[@]} in	0) return 1 ;;	1) return 1 ;;	2) case ${T2[1]:0:1} in		# SanScrit-2.0.5	   \*) T2[${#T2[@]}]=${T2[1]:1}	       T2[1]=\*	       ;;	    *) T2[${#T2[@]}]=${T2[1]}	       T2[1]=" "	       ;;	   esac	   ;;	3) : ;; # Assume it worked	*) return 1 ;;	esac	local -i len=${#T2[0]}	if [ $len -ne 32 ] ; then return 1 ; fi	eval $2=\( \"\$\{T2\[@\]\}\" \)}# # # # # Locate File # # # # ###	LocateFile [-l] FileName Location-Array-Name# or#	LocateFile [-l] -of FileName Location-Array-FileName# # # # ## A file location is Filesystem-id and inode-number# Here document used as a comment block.: &lt;&lt;StatFieldsDoc	Based on stat, version 2.2	stat -t and stat -lt fields	[0]	name	[1]	Total size		File - number of bytes		Symbolic link - string length of pathname	[2]	Number of (512 byte) blocks allocated	[3]	File type and Access rights (hex)	[4]	User ID of owner	[5]	Group ID of owner	[6]	Device number	[7]	Inode number	[8]	Number of hard links	[9]	Device type (if inode device) Major	[10]	Device type (if inode device) Minor	[11]	Time of last access		May be disabled in 'mount' with noatime		atime of files changed by exec, read, pipe, utime, mknod (mmap?)		atime of directories changed by addition/deletion of files	[12]	Time of last modification		mtime of files changed by write, truncate, utime, mknod		mtime of directories changed by addtition/deletion of files	[13]	Time of last change		ctime reflects time of changed inode information (owner, group		permissions, link count-*-*- Per:	Return code: 0	Size of array: 14	Contents of array	Element 0: /home/mszick	Element 1: 4096	Element 2: 8	Element 3: 41e8	Element 4: 500	Element 5: 500	Element 6: 303	Element 7: 32385	Element 8: 22	Element 9: 0	Element 10: 0	Element 11: 1051221030	Element 12: 1051214068	Element 13: 1051214068	For a link in the form of linkname -> realname	stat -t  linkname returns the linkname (link) information	stat -lt linkname returns the realname information	stat -tf and stat -ltf fields	[0]	name	[1]	ID-0?		# Maybe someday, but Linux stat structure	[2]	ID-0?		# does not have either LABEL nor UUID				# fields, currently information must come				# from file-system specific utilities	These will be munged into:	[1]	UUID if possible	[2]	Volume Label if possible	Note: 'mount -l' does return the label and could return the UUID	[3]	Maximum length of filenames	[4]	Filesystem type	[5]	Total blocks in the filesystem	[6]	Free blocks	[7]	Free blocks for non-root user(s)	[8]	Block size of the filesystem	[9]	Total inodes	[10]	Free inodes-*-*- Per:	Return code: 0	Size of array: 11	Contents of array	Element 0: /home/mszick	Element 1: 0	Element 2: 0	Element 3: 255	Element 4: ef53	Element 5: 2581445	Element 6: 2277180	Element 7: 2146050	Element 8: 4096	Element 9: 1311552	Element 10: 1276425StatFieldsDoc#	LocateFile [-l] FileName Location-Array-Name#	LocateFile [-l] -of FileName Location-Array-FileNameLocateFile(){	local -a LOC LOC1 LOC2	local lk="" of=0	case "$#" in	0) return 1 ;;	1) return 1 ;;	2) : ;;	*) while (( "$#" > 2 ))	   do	      case "$1" in	       -l) lk=-1 ;;	      -of) of=1 ;;	        *) return 1 ;;	      esac	   shift           done ;;	esac# More Sanscrit-2.0.5      # LOC1=( $(stat -t $lk $1) )      # LOC2=( $(stat -tf $lk $1) )      # Uncomment above two lines if system has "stat" command installed.	LOC=( ${LOC1[@]:0:1} ${LOC1[@]:3:11}	      ${LOC2[@]:1:2} ${LOC2[@]:4:1} )	case "$of" in		0) eval $2=\( \"\$\{LOC\[@\]\}\" \) ;;		1) echo "${LOC[@]}" > "$2" ;;	esac	return 0# Which yields (if you are lucky, and have "stat" installed)# -*-*- Location Discriptor -*-*-#	Return code: 0#	Size of array: 15#	Contents of array#	Element 0: /home/mszick		20th Century name#	Element 1: 41e8			Type and Permissions#	Element 2: 500			User#	Element 3: 500			Group#	Element 4: 303			Device#	Element 5: 32385		inode#	Element 6: 22			Link count#	Element 7: 0			Device Major#	Element 8: 0			Device Minor#	Element 9: 1051224608		Last Access#	Element 10: 1051214068		Last Modify#	Element 11: 1051214068		Last Status#	Element 12: 0			UUID (to be)#	Element 13: 0			Volume Label (to be)#	Element 14: ef53		Filesystem type}# And then there was some test codeListArray() # ListArray Name{	local -a Ta	eval Ta=\( \"\$\{$1\[@\]\}\" \)	echo	echo "-*-*- List of Array -*-*-"	echo "Size of array $1: ${#Ta[*]}"	echo "Contents of array $1:"	for (( i=0 ; i<${#Ta[*]} ; i++ ))	do	    echo -e "\tElement $i: ${Ta[$i]}"	done	return 0}declare -a CUR_DIR# For small arraysListDirectory "${PWD}" CUR_DIRListArray CUR_DIRdeclare -a DIR_DIGDigestFile CUR_DIR DIR_DIGecho "The new \"name\" (checksum) for ${CUR_DIR[9]} is ${DIR_DIG[0]}"declare -a DIR_ENT# BIG_DIR # For really big arrays - use a temporary file in ramdisk# BIG-DIR # ListDirectory -of "${CUR_DIR[11]}/*" "/tmpfs/junk2"ListDirectory "${CUR_DIR[11]}/*" DIR_ENTdeclare -a DIR_IDX# BIG-DIR # IndexList -if "/tmpfs/junk2" DIR_IDXIndexList DIR_ENT DIR_IDXdeclare -a IDX_DIG# BIG-DIR # DIR_ENT=( $(cat /tmpfs/junk2) )# BIG-DIR # DigestFile -if /tmpfs/junk2 IDX_DIGDigestFile DIR_ENT IDX_DIG# Small (should) be able to parallize IndexList & DigestFile# Large (should) be able to parallize IndexList & DigestFile & the assignmentecho "The \"name\" (checksum) for the contents of ${PWD} is ${IDX_DIG[0]}"declare -a FILE_LOCLocateFile ${PWD} FILE_LOCListArray FILE_LOCexit 0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲大片在线观看| 不卡一区二区三区四区| 国产老女人精品毛片久久| 国v精品久久久网| 欧美体内she精视频| 国产女人18毛片水真多成人如厕| 一区av在线播放| 国产精品一二三四| 宅男噜噜噜66一区二区66| 国产精品久久久久影院亚瑟 | www.在线成人| 91精品国产91久久久久久一区二区| 国产日韩在线不卡| 久久99国产精品成人| 欧洲av一区二区嗯嗯嗯啊| 国产日韩精品久久久| 久久99深爱久久99精品| 欧美夫妻性生活| 亚洲高清不卡在线观看| 91美女在线观看| 国产精品毛片高清在线完整版| 久久精品国产第一区二区三区| 欧美色偷偷大香| 亚洲福利一二三区| 在线视频观看一区| 亚洲码国产岛国毛片在线| 成人av午夜影院| 国产精品狼人久久影院观看方式| 国内成人自拍视频| 精品电影一区二区| 久久精品99国产国产精| 91精品国产综合久久久久久漫画| 亚洲国产精品尤物yw在线观看| 色又黄又爽网站www久久| 日韩一区在线看| 91亚洲午夜精品久久久久久| 国产精品伦理在线| 97se亚洲国产综合自在线| 亚洲天堂福利av| 日本韩国精品在线| 亚洲第一电影网| 91麻豆精品国产91| 久久国产尿小便嘘嘘| 久久久噜噜噜久久人人看| 国产成人超碰人人澡人人澡| 亚洲国产精品黑人久久久| 懂色av一区二区三区免费观看| 中文字幕乱码一区二区免费| 风间由美一区二区三区在线观看| 国产精品久久久久久久岛一牛影视| 成人久久久精品乱码一区二区三区 | av一区二区三区在线| 亚洲欧洲av在线| 欧美亚洲一区二区三区四区| 婷婷亚洲久悠悠色悠在线播放 | 色欧美乱欧美15图片| 午夜免费久久看| 久久影院午夜片一区| 丁香另类激情小说| 亚洲一二三四久久| 日韩无一区二区| 国产成人在线电影| 亚洲第一二三四区| 久久久精品国产免费观看同学| av在线综合网| 秋霞av亚洲一区二区三| 国产亚洲综合性久久久影院| 91天堂素人约啪| 久久国产剧场电影| 亚洲乱码国产乱码精品精98午夜 | 久久蜜桃香蕉精品一区二区三区| 成人精品一区二区三区四区| 亚洲国产sm捆绑调教视频| 久久夜色精品一区| 欧美在线色视频| 国产福利电影一区二区三区| 亚洲综合在线观看视频| 久久奇米777| 欧美日韩一区不卡| av一区二区三区四区| 美洲天堂一区二卡三卡四卡视频 | 久久亚区不卡日本| 欧美日韩美少妇| 不卡一卡二卡三乱码免费网站| 男男gaygay亚洲| 一区二区三区在线观看欧美| 久久网这里都是精品| 欧美日韩夫妻久久| 91网站最新网址| 国产成人av电影在线观看| 看电视剧不卡顿的网站| 一区二区在线观看视频| 国产欧美日韩精品a在线观看| 69精品人人人人| 欧美色欧美亚洲另类二区| 成人黄色av电影| 精品亚洲国内自在自线福利| 亚洲一区二区三区中文字幕在线| 国产精品九色蝌蚪自拍| 久久久午夜精品| 精品国产一区二区三区忘忧草| 欧美日韩国产区一| 欧洲在线/亚洲| 色综合久久九月婷婷色综合| 成人精品免费网站| 成人国产精品免费观看| 国产精品18久久久久久久网站| 蜜臀精品久久久久久蜜臀| 视频一区免费在线观看| 亚洲国产wwwccc36天堂| 亚洲一区中文在线| 亚洲已满18点击进入久久| 一区二区在线看| 一区二区高清视频在线观看| 亚洲男人的天堂在线aⅴ视频| 国产精品成人网| 中文字幕一区二区三区四区不卡 | 91精品一区二区三区久久久久久| 欧洲av在线精品| 欧美丝袜丝交足nylons图片| 色狠狠av一区二区三区| 欧美系列日韩一区| 欧美日韩另类一区| 91麻豆精品国产91久久久久久久久| 制服.丝袜.亚洲.另类.中文| 日韩精品一区二区在线| 精品国产一区二区三区忘忧草 | 亚洲一区二区在线播放相泽| 亚洲一区视频在线观看视频| 亚洲网友自拍偷拍| 首页亚洲欧美制服丝腿| 日韩国产欧美一区二区三区| 美女网站一区二区| 国产乱子伦视频一区二区三区| 国产91精品免费| 在线精品视频小说1| 7777精品伊人久久久大香线蕉 | 亚洲黄色在线视频| 亚洲一区二区不卡免费| 日韩国产欧美在线视频| 国内精品自线一区二区三区视频| 东方欧美亚洲色图在线| 色网站国产精品| 欧美日韩国产综合久久| 欧美成人精品二区三区99精品| 久久精品亚洲麻豆av一区二区| 国产精品成人一区二区艾草 | 亚洲色图一区二区| 性做久久久久久| 国产综合色视频| 日本电影欧美片| 日韩午夜激情av| 1024成人网| 美女www一区二区| 色综合天天性综合| 日韩免费性生活视频播放| 亚洲欧洲日产国码二区| 日本va欧美va精品发布| 国产91富婆露脸刺激对白| 在线观看欧美精品| 日本一区二区免费在线| 日日夜夜一区二区| 不卡电影一区二区三区| 欧美一二区视频| 亚洲欧美日韩久久| 国产精品一区二区91| 91麻豆精品国产91久久久| 国产精品你懂的在线| 久久精品国产澳门| 欧美在线观看禁18| 中文字幕乱码久久午夜不卡| 日本伊人色综合网| 色综合久久66| 国产精品午夜在线| 另类中文字幕网| 欧美精品三级日韩久久| 国产精品天干天干在观线| 精品一区二区免费视频| 欧美日韩一区二区在线观看视频 | 成人一二三区视频| 日韩女优电影在线观看| 亚洲在线观看免费| 91片在线免费观看| 欧美国产日韩a欧美在线观看 | 天堂av在线一区| 色婷婷精品大在线视频| **性色生活片久久毛片| 精品一区二区三区香蕉蜜桃| 欧美日本一道本| 丝袜美腿高跟呻吟高潮一区| 欧美在线制服丝袜| 亚洲综合激情另类小说区| 色噜噜久久综合| 亚洲免费观看高清完整版在线观看熊 | 国产成人av自拍| 久久亚洲一级片| 久久99精品国产麻豆不卡| 欧美日韩国产首页| 日韩高清中文字幕一区| 欧美人成免费网站|