⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readlink.sh

📁 在网络安全中经常会遇到rootkit
💻 SH
字号:
#!/bin/sh## This is a short script to get the full pathname of a link file.# It has the same effect as the Linux 'readlink -f' command. The# script was written because some systems have no 'readlink' command,# and others have no '-f' option for readlink. As such we use the 'ls'# and 'awk' commands to get the link target.## We check the 'pwd' command because the shell builtin command will# usually print out the current directory, which may be a link, rather# than the true working directory. The (typically) '/bin/pwd' command# itself shows the true directory.## A soft (symbolic) link has two parts to it:##       linkname -> target## Usage: readlink.sh [-f] <linkname> [pwd command]### We don't actually do anything with the '-f' option# if it is used.#test "$1" = "-f" && shiftLINKNAME=$1PWD_CMD=$2test -z "${PWD_CMD}" -o ! -x "${PWD_CMD}" && PWD_CMD="pwd"## If we were given just a filename, then prepend# the current directory to it.#if [ -z "`echo \"${LINKNAME}\" | grep '/'`" ]; then	LINKNAME="`${PWD_CMD}`/${LINKNAME}"fi## Now do some tests on the link name.#if [ -d "${LINKNAME}" ]; then	FNAME=""	DIR="${LINKNAME}"else	#	# We have been given a pathname to a file. Separate	# out the filename and the directory.	#	FNAME=`echo "${LINKNAME}" | sed -e 's:^.*/\([^/]*\)$:\1:'`	DIR=`echo "${LINKNAME}" | sed -e 's:/[^/]*$::'`fi## Get the true directory path.#DIR=`cd ${DIR}; ${PWD_CMD}`## If we were only given a directory name, then return# its true path.#if [ -z "${FNAME}" ]; then	echo "${DIR}"	exitfi## Now we loop round while we have a link.#while test -h "${DIR}/${FNAME}"; do	#	# Get the link directory, and the target.	#	LINKNAME="${DIR}"	FNAME=`ls -ld ${DIR}/${FNAME} | awk '{ print $NF }'`	#	# If the target is just a filename, then we	# prepend the link directory path. If it isn't	# just a filename, then we have a pathname. That	# now becomes our new link name.	#	if [ -z "`echo \"${FNAME}\" | grep '^/'`" ]; then		LINKNAME="${LINKNAME}/${FNAME}"	else		LINKNAME="${FNAME}"	fi	#	# Once again, extract the file name and the directory	# path, and then get the real directory path name.	#	FNAME=`echo "${LINKNAME}" | sed -e 's:^.*/\([^/]*\)$:\1:'`	DIR=`echo "${LINKNAME}" | sed -e 's:/[^/]*$::'`	DIR=`cd ${DIR}; ${PWD_CMD}`done## At this point we have a pathname to a file, which is not# a link. To ensure we have the true pathname, we once again# extract the directory.#FNAME=`echo "${LINKNAME}" | sed -e 's:^.*/\([^/]*\)$:\1:'`DIR=`echo "${LINKNAME}" | sed -e 's:/[^/]*$::'`DIR=`cd ${DIR}; ${PWD_CMD}`echo "${DIR}/${FNAME}"exit

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -