#文件管理命令

YFS采用了与一般文件系统类似的文件操作命令管理YFS目录、文件。

# cat

本命令将YFS文件以二进制模式打印到标准输出。

Note

本命令属于实验室特性。

YFS文件多为二进制数据,不建议直接将文件内容输出,可能输出乱码,引起shell会话异常。

本命令可用于在非交互模式下,将文件数据流通过管道重定向到其他工具处理。

命令格式:

cat  filename

# cd

本命令用于切换工作目录,命令格式:

cd path

path

新的工作目录路径,相对、绝对路径均可,仅支持YFS路径,不可省略。

# cin

本命令用于向YFS文件写入数据流。

Warn

本命令属于实验室特性且为高危操作。

本命令会改变YFS文件的大小、丢失数据,请勿在生产环境使用,请勿用于操作数据库文件、业务数据等。

命令格式:

cin [-e] [-s size] filename
  • -e: 自动扩展文件,默认不扩展。
  • -s: 开始写入的偏移,默认为 0。10241K1M1G都是合法的size格式。

该指令以二进制模式读取标准输入,写入到YFS的文件中,目标文件必须存在。写入数据长度由标准输入流决定。

如未指定-e,目标文件不会自动扩展,请确保写入数据不超过文件尾部,否则报错。如指定-e,则文件会随着数据写入自动按512字节扩展,输入流长度不满足512字节对齐时,未写入位置数据未定义。

请在非交互模式下,配合管道使用该指令,不支持交互模式使用该指令。

示例

# 请在 Linux shell 中,以 yfscmd 命令行模式执行,通过 `|` 管道为 yfscmd cin 输入数据流
# 从 DG0/data 文件 1K 处写入 10M 数据,内容为 0,文件自动扩展
$ dd if=/dev/zero bs=1M count=10 | yfscmd cin -e -s 1K DG0/data
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.161797 s, 64.8 MB/s

# cp

本命令用于复制文件或递归复制目录,命令格式:

cp src dst

src

源路径,可以是YFS或本地文件系统的文件或目录,不可省略。

dst

目标路径, 可以是YFS或本地文件系统的文件或目录。不可省略,且dst不能已存在。

与Linux Shell的cp命令不同的是,本cp命令不会推断dst路经,用户需要明确的指定新文件或文件夹。例如,运行cp 1.txt newdir/命令时,如newdir目录不存在将创建名称为newdir的文件,如newdir目录已存在则报错。因此执行本cp命令应该明确地指出dst路径,例如cp 1.txt newdir/2.txt

yfscmd支持以下方向的复制:

  • YFS到本地文件系统。
  • YFS到YFS。
  • 本地文件系统到YFS。

Note

如需执行本地文件系统到本地文件系统的复制,请使用Linux Shell的cp命令。

yfscmd通过路径中的根目录符号确定参数的文件系统类型:

  • +:YFS 路径,yfscmd中的所有相对路径都会转换为YFS路径。
  • /:本地文件系统路径。

由于 yfscmd 中相对路径都会转换为 YFS 路径,如需指定参数为本地文件系统路径,须以绝对路径形式指定。

例如 /local/fs/path 会被识别为本地文件系统路径, file 或者 +DG0/file 都会被识别为YFS路径。

# file

本命令用于查看YFS文件元信息。

Note

本命令属于实验室特性。

命令格式:

file filename

示例

YFSCMD >  file data
fileCtrl = {
    blockHead = {
        checksum     = 0
        changeNum    = 40
        latch.status = 0
        blockId      = 257
        lsn          = 14
        blockSize    = 4096
        type         = 4
    }
    fd        = 257
    size      = 1048576
    auCnt     = 2
    dataCpyCnt= 1
    metaCpyCnt= 1
    createTime= 1721329555179151
    deleteTime= 0
    strpwdth  = 0
    redundancy= 0
    used      = 1
    type      = 0
    count     = 2
    indirAuBlocks= 0
}

# help

本命令用于显示帮助信息,命令格式:

help [cmd]

cmd

yfscmd子命令,可省略,省略时显示子命令清单。

# ls

本命令用于打印文件清单,命令格式:

ls [-l] [-d] [path]
  • -l: longformat, 显示详细信息。
  • -d: 如果参数为目录,显示目录自身详情,而非显示目录内容详情。

path

打印该路径下文件清单。可省略,省略则默认为当前工作目录。

# md5sum

本命令计算YFS文件的md5sum。

Note

本命令属于实验室特性,且依赖于Linux系统的md5sum工具,如系统未安装该工具则使用md5sum命令将报错。

命令格式:

md5sum filename

示例

YFSCMD >  md5sum DG0/data
f1c9645dbc14efddc7d8a322685f26eb *-

# mkdir

本命令用于创建目录,命令格式:

mkdir dir

dir

创建的目录名,不可与现有文件对象重名,不可省略。

如需在其他工作目录下创建目录,须指定目标目录路径,仅支持YFS路径。

# mv

本命令用于重命名和移动文件或目录。

Warn

高危操作,请勿用于操作数据库文件、业务数据等,请勿在生产环境使用该指令。

如有数据备份等需求,请使用YashanDB的备份恢复组件。

命令格式:

mv src dst

src

原文件名或路径,路径须为YFS路径,不可省略。

dst

新文件名或路径,路径须为YFS路径,且该不能与现有文件对象重复,不可省略。

# pwd

本命令用于显示当前工作目录,命令格式:

pwd

# rm

本命令用于删除目录或文件。

Warn

高危操作,请勿用于操作数据库文件、业务数据等,请勿在生产环境使用该指令。

删除数据库文件,请使用YashanDB对应的表空间、归档管理指令。

命令格式:

rm [-r] path
  • -r: 如果 path 是目录,递归删除。

path

删除的目录或文件名,不可省略。对于非空目录,需指定-r参数进行递归删除。

# touch

本命令在YFS中创建文件,大小为0。

Note

本命令属于实验室特性。

命令格式:

touch filename

# truncate

本命令调整YFS文件大小,扩展文件时,新扩展的区域数据未定义,缩小文件时,尾部数据被丢弃。

Warn

本命令属于实验室特性且为高危操作。

本命令会改变YFS文件的大小、丢失数据,请勿在生产环境使用,请勿用于操作数据库文件、业务数据等。

如需调整数据文件大小,请通过YashanDB的指令操作。

命令格式:

TRUNCATE [-q] -s size filename
  • -q: 静默模式,不提示数据风险。
  • -s: 调整文件大小,10241K1M1G都是合法的size格式。

示例

YFSCMD >  truncate -s 1M data
Resize data from 10.00MB to 1.00MB? May lost data!
[Y/n] Y
YFSCMD >  ll data
Type Time                 Size     Space    Name
FILE 2024-07-18 07:05:55  1.00MB   2.00MB   data

# vim

本命令用于编辑YFS文件。

Warn

本命令属于实验室特性且为高危操作。

本命令依赖于Linux系统的vim,使用本命令会改变YFS文件的大小、丢失数据,请勿在生产环境使用,请勿用于操作数据库文件、业务数据等。

命令格式:

vim filename

该指令仅接受1个YFS文件路径。

待编辑的文件会被复制到本机/tmp目录下的一个临时文件,编辑完毕后,需要您同意用修改的文件覆盖YFS中的原文件,如此时取消则所有修改都会被丢弃,YFS中的原文件无变化。

由于该指令会发生2次YFS和本地文件系统的文件复制,如果待编辑文件较大,文件导出耗时较长,不建议编辑太大的文件。

如果编辑后文件大小发生变化,yfscmd会自动将其用0填充为512字节整倍数大小。

示例

YFSCMD >  vim 1.txt
your temp file here: /tmp/yfs-edit.IOVZ3F
cp OK: YFS:+DG0/1.txt --> SYS:/tmp/yfs-edit.IOVZ3F
# 弹出 vim 界面,编辑后保存退出
file +DG0/1.txt exists, overwrite?
[Y/n] Y
overwrite +DG0/1.txt .
Warning: File size 13 not aligned to 512, auto resize.
cp OK: SYS:/tmp/yfs-edit.IOVZ3F --> YFS:+DG0/1.txt
pdf-btn 下载文档
copy-btn 复制链接