100、编写一个程序,提示用户输入一个目录名(默认为用户主目录),使用目录句柄列出该目录下的所有文件。
以下是一个满足需求的 Perl 程序示例:
use strict;
use warnings;
use File::HomeDir;
# 提示用户输入目录名,默认为用户主目录
print "请输入一个目录名(留空则使用用户主目录):";
my $dirname = <STDIN>;
chomp $dirname;
$dirname = File::HomeDir->my_home unless $dirname;
# 打开目录
opendir my $dh, $dirname or die "无法打开目录 $dirname: $!";
# 读取并列出目录下的所有文件
while (my $name = readdir $dh) {
next if $name =~ /^\./; # 跳过隐藏文件
print $name, "\n";
}
# 关闭目录
closedir $dh;
这个程序首先提示用户输入目录名,如果用户没有输入,则使用用户主目录。然后打开该目录,读取并列出所有非隐藏文件,最后关闭目录。
101、编写一个程序,删除命令行参数指定的所有文件,并在删除失败时给出警告。
以下是一个满足需求的 Perl 程序示例:
foreach my $file (@ARGV) {
if (!unlink($file)) {
warn "无法删除文件 $file: $!\n";
}
}
上述程序会遍历命令行参数中的所有文件,尝试删除它们。若删除失败,会给出相应的警告信息。
102、编写一个程序,为命令行参数指定的源文件创建一个硬链接到目标文件,如果目标文件是一个目录,则将源文件的硬链接创建到该目录下。
以下是一个满足需求的 Perl 程序示例:
#!/usr/bin/perl
use strict;
use warnings;
use File::Spec;
# 获取命令行参数
my ($source, $target) = @ARGV;
# 检查参数是否足够
if (!defined $source || !defined $target) {
die "Usage: $0 <source_file> <target_file_or_directory>\n";
}
# 检查源文件是否存在
if (! -e $source) {
die "Source file $source does not exist.\n";
}
# 检查目标是否为目录
if (-d $target) {
# 如果是目录,构建目标文件路径
my $filename = (File::Spec->splitpath($source))[2];
$target = File::Spec->catfile($target, $filename);
}
# 创建硬链接
if (link($source, $target)) {
print "Hard link created successfully from $source to $target.\n";
} else {
die "Failed to create hard link: $!\n";
}
将上述代码保存为一个 .pl 文件,例如 create_hard_link.pl ,然后在命令行中运行,如:
perl create_hard_link.pl source_file.txt target_directory
或者
perl create_hard_link.pl source_file.txt target_file.txt
103、编写一个程序,根据命令行参数的 -s 选项,为命令行参数指定的源文件创建一个符号链接或硬链接到目标文件,如果目标文件是一个目录,则将源文件的链接创建到该目录下。
以下是一个使用 Python 实现该功能的示例代码:
import os
import sys
is_symbolic = False
if '-s' in sys.argv:
is_symbolic = True
sys.argv.remove('-s')
if len(sys.argv) != 3:
print('用法: python script.py [-s] 源文件 目标文件')
sys.exit(1)
source_file = sys.argv[1]
target = sys.argv[2]
if os.path.isdir(target):
target = os.path.join(target, os.path.basename(source_file))
if is_symbolic:
try:
os.symlink(source_file, target)
print(f'符号链接创建成功: {target}')
except F

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



